我需要创建Web服务客户端,该服务公司向我们发送wsdl文件。我有wsdl文件,用户名和密码,服务网址和txt文件,其中包含一些密钥,例如' 20 a9 38 4e 82 3a 94 d1 ...'。服务器有自签名证书,我试图通过InstallCert.java获取证书,生成带有keytool等的密钥库。当我从wsdl生成带有axis2 wsdl2java的客户端时,它生成客户端但在生成过程结束时给出端口443错误。当我在eclipse中通过web服务资源管理器测试服务时,我得到了javax.net.ssl.SSLHandshakeException sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求的目标错误的有效证书路径。我也检查了这个错误,但我找不到解决方案。
任何人都可以告诉我,我应该如何使用jdk 1.6在eclipse apache tomcat中生成客户端,普通客户端之间有什么区别。
答案 0 :(得分:0)
首先,网址端点应为 httpS 而不是 http 并使您的信任库/密钥库可供JVM使用。
请参阅:http://blog.technogemsinc.com/2008/02/https-connection-in-java.html
我也用https://code.google.com/p/misc-utils/wiki/JavaHttpsUrl 大约一年前..
使用以下两个选项中更方便的内容
使信任库可用于jvm
-Djavax.net.ssl.trustStore = “LT;%PATH_TO_TRUST_STORE%GT; \ testkeys”
告诉您的Java / socket工厂使用此“信任存储”:
System.setProperty(“javax.net.ssl.trustStore”,“keystore_file”);
System.setProperty(“javax.net.ssl.trustStorePassword”,“somepass”);