如何使用 wsdl2java 从使用 x.509 证书保护的 WSDL 生成代码?

How to use wsdl2java to generate code from WSDL which is secured using x.509 certificate?

我尝试使用 wsdl2java 生成 Java 类。

Wsdl 位于使用 X509 证书保护的远程服务器中,以这种方式,当我尝试在浏览器中访问它而没有信任库中的证书时,它返回错误(当然当我将证书导入 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 商店中导入了我的证书。

我如何建议 wsdl2java 使用来自 JKS 的证书来连接服务器?

我建议您通过以下步骤跳过此问题:

  1. 将该 wsdl 手动下载到您的本地计算机。

  2. 手动将 wsdl 文件中引用的 xsd 文件下载到您的本地计算机。

  3. 修改 wsdl 以将 xsd 位置更改为本地位置。

  4. 您现在可以生成 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 %*

来自: