繁体   English   中英

如何导入CA为WSDL客户端生成目的?

[英]How to import CA for WSDL client generate purpose?

我得到了一个WSDL文件,并要求我通过它创建一个JAVA客户端,因此我运行eclipse 4.5.2,创建了一个空的Dynamic Web项目,将该WSDL导入该项目,然后右键单击:

  1. Web服务->生成客户端
  2. 设置配置:Tomcat 7.0,Apache Axis
  3. 单击“完成”并弹出异常:PKIX构建路径失败

因此,我查看该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

使用此服务涉及几个步骤。

  1. 获取/提取公开服务的证书。 可以通过要求该服务的开发人员提供证书来完成此操作,或者可以使用浏览器访问该服务并提取证书(如果可能)。

  2. 找到Java的默认信任库。 Java / JRE附带Java安装中的全局信任库。 查找cacerts文件。 该文件应该在/ jre / lib / security中。

  3. 将证书导入到信任存储中。 使用keytool命令将网络服务证书导入cacerts文件中。

    keytool -import -v -trustcacerts -alias服务器别名-file server.cer -keystore cacerts -keypass changeit -storepass changeit

请注意,不建议使用此方法,因为这将仅在当前服务器/工作站上信任证书,并且该文件在下次Java升级中可能会被覆盖。 您需要在将要部署该应用程序的所有位置执行此步骤。

尽管您需要执行上述步骤来创建服务代理(Eclipse / Apache轴项目生成)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM