从wsdl到客户端java web服务(Server有自签名证书)

时间:2014-03-26 08:51:08

标签: java eclipse web-services ssl wsdl

我需要创建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中生成客户端,普通客户端之间有什么区别。

1 个答案:

答案 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 大约一年前..

使用以下两个选项中更方便的内容

  1. 使信任库可用于jvm

    -Djavax.net.ssl.trustStore = “LT;%PATH_TO_TRUST_STORE%GT; \ testkeys”

  2. 告诉您的Java / socket工厂使用此“信任存储”:

    System.setProperty(“javax.net.ssl.trustStore”,“keystore_file”);

    System.setProperty(“javax.net.ssl.trustStorePassword”,“somepass”);