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

如何使用wsdl2java从使用x.509证书保护的WSDL生成代码?,java,cxf,x509,wsdl2java,Java,Cxf,X509,Wsdl2java,我尝试使用wsdl2java生成Java类 Wsdl位于使用X509证书进行安全保护的远程服务器中,这样一来,当我尝试在浏览器中访问它而信任存储中没有证书时,它会返回一个错误(当然,当我将证书导入到certmgr.msc中时,Wsdl显示得很好) 不幸的是,当我尝试运行wsdl2java时,我得到: > org.apache.cxf.wsdl11.WSDLRuntimeException: Fail to create wsdl definition file:/resources/wsd

我尝试使用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的证书连接到serwer?

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

  • 手动将该wsdl下载到本地计算机

  • 将wsdl文件中引用的xsd文件手动下载到本地计算机

  • 修改该wsdl以将xsd位置更改为本地位置

  • 现在就可以生成java代码了

  • 如果你真的想成功的话。请参阅此处:

    %JAVA_HOME%\bin\JAVA“-Djavax.net.ssl.trustStore=“{keystorefile}”-Djavax.net.ssl.ssl.ssl.ssl.keyStoreType=”jks”-Dorg.jboss.security.ignoreHttpsHost=“true”-Xmx128M-Djava.annowed.dirs=“%CXF_HOME%\lib\annowed”-cp”%CXF_classjar%;%TOOLS_JAR%;%path%”-Djava.util.logging.config.file=%CXF\u HOME%\etc\logging.properties“org.apache.CXF.tools.wadlto.WADLToJava%*
    
    来自:

    1)大约有100个文件,所以我无法手动完成。2)谢谢,这很有效:
    wsdl2java-Djavax.net.ssl.keyStore=/path/to/file.jks-Djavax.net.ssl.keystrepassword=XXX