【问题标题】:From wsdl to client java web service(Server has self signed certificate)从 wsdl 到客户端 java web 服务(服务器有自签名证书)
【发布时间】:2014-05-04 12:57:59
【问题描述】:

我需要创建 Web 服务客户端,提供服务的公司向我们发送 wsdl 文件。我有 wsdl 文件、用户名和密码、服务 url 和 txt 文件,其中包含一些键,例如“20 a9 38 4e 82 3a 94 d1 ...”。服务器具有自签名证书,我尝试通过 InstallCert.java 获取证书,使用 keytool 生成密钥库等。当我使用 axis2 wsdl2java 从 wsdl 生成客户端时,它会生成客户端,但在生成过程结束时会出现端口 443 错误。当我在 Eclipse 中通过 Web 服务资源管理器测试服务时,我得到 javax.net.ssl.SSLHandshakeException sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标错误的有效证书路径。我也检查了这个错误,但我找不到解决方案。

谁能告诉我,我应该如何使用 jdk 1.6 在 eclipse apache tomcat 中生成客户端,与普通客户端有什么区别。

【问题讨论】:

    标签: java eclipse web-services ssl wsdl


    【解决方案1】:

    首先,URL 端点应该是 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="\testkeys"

    2. 告诉你的 Java/socket 工厂使用这个“信任库”:

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

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

    【讨论】:

      猜你喜欢
      • 2011-06-11
      • 2010-11-13
      • 2014-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多