我嘗試使用 wsdl2java 生成 Java 類。Wsdl 位于使用 X509 證書保護的遠程服務(wù)器中,以這種方式,當我嘗試在瀏覽器中訪問它而沒有信任庫中的證書時,它返回錯誤(當然當我將證書導(dǎo)入到certmgr.msc, wsdl 顯示得很好)。不幸的是,當我嘗試運行 wsdl2java 時,我得到:> org.apache.cxf.wsdl11.WSDLRuntimeException: Fail to create wsdl definition file:/resources/wsdl/my.xml: WSDLException (at /wsdl:definitions/wsdl:types/xsd:schema): faultCode=PARSER_ERROR: Problem parsing 'https://SERVER_HOST/my?xsd=../xsd/XX.xsd'.: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure我在 JKS 商店中導(dǎo)入了我的證書。我如何建議 wsdl2java 使用來自 JKS 的證書來連接服務(wù)器?
1 回答

函數(shù)式編程
TA貢獻1807條經(jīng)驗 獲得超9個贊
我想建議你通過以下步驟跳過這個問題:
將該 wsdl 手動下載到您的本地計算機。
將 wsdl 文件中引用的 xsd 文件手動下載到本地計算機。
修改 wsdl 以將 xsd 位置更改為本地位置。
您現(xiàn)在可以生成 Java 代碼了。
如果你真的想成功。請參考這里:
"%JAVA_HOME%\bin\java" -Djavax.net.ssl.trustStore="{keystorefile}" -Djavax.net.ssl.trustStorePassword="{password}" -Djavax.net.ssl.keyStoreType="jks" -Dorg.jboss.security.ignoreHttpsHost="true" -Xmx128M -Djava.endorsed.dirs="%CXF_HOME%\lib\endorsed" -cp "%CXF_JAR%;%TOOLS_JAR%;%CLASSPATH%" -Djava.util.logging.config.file="%CXF_HOME%\etc\logging.properties" org.apache.cxf.tools.wadlto.WADLToJava %*
添加回答
舉報
0/150
提交
取消