我已经获得了一个WSDL文件并要求我通过它创建一个JAVA客户端,所以我运行eclipse 4.5.2,创建一个空的Dynamic web项目,将该WSDL导入该项目,然后右击:
所以我查看了WSDL,它包含一些需要连接到我们的测试服务的链接:
<soap:address location="https://example.com/testwebservice.svc" />
我环顾了Stackoverflow,看起来我需要从该HTTPS服务站点导入CA.但我不知道如何在未生成代码的情况下“导入”该CA.
请告诉我如何解决这个问题,以便继续我的开发,谢谢!
=====================
将CA导入我的cacerts之后,这个问题仍然存在?这很奇怪,因为我导出了这个WSDL将通过浏览器连接到的所有CA(并且keytool一直告诉我这个CA在我第一次导入后已经存在)。
IWAB0399E Error in generating Java from WSDL: javax.wsdl.WSDLException: WSDLException (at /wsdl:definitions/wsdl:types/xsd:schema): faultCode=OTHER_ERROR: An error occurred trying to resolve schema referenced at 'https://example.com/CPP/download/xsd0.xsd', relative to 'file:/D:/project/java_client/java_client.wsdl'.: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
javax.wsdl.WSDLException: WSDLException (at /wsdl:definitions/wsdl:types/xsd:schema): faultCode=OTHER_ERROR: An error occurred trying to resolve schema referenced at 'https://example.com/CPP/download/xsd0.xsd', relative to 'file:/D:/project/java_client/java_client.wsdl'.: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at com.ibm
答案 0 :(得分:0)
使用此服务需要执行几个步骤。
获取/提取已公开服务的证书。这可以通过要求该服务的开发人员提供证书来完成,或者您可以使用浏览器访问该服务并在可能的情况下提取证书。
找到java的默认信任库。 Java / JRE附带位于Java安装中的全局信任库。找到cacerts文件。该文件应该在/ jre / lib / security中可用。
将证书导入信任库。使用keytool命令在cacerts文件中导入webservice证书。
keytool -import -v -trustcacerts -alias server-alias -file server.cer -keystore cacerts -keypass changeit -storepass changeit
请注意,这不是推荐的方法,因为它只信任当前服务器/工作站上的证书,并且此文件可能会在下次Java升级中被覆盖。您需要在部署此应用程序的任何位置执行此步骤。
虽然您需要执行上述步骤来创建服务代理(Eclipse / Apache轴项目生成)