2014-03-26 85 views
0

我需要創建web服務客戶端,服務的公司發送給我們wsdl文件。我有wsdl文件,用戶名和密碼,服務網址和txt文件,其中包含一些關鍵字,例如「20 a9 38 4e 82 3a 94 d1 ...」。服務器有自簽名證書,我試圖通過InstallCert.java獲取證書,使用keytool生成密鑰庫等。當我使用axis2生成wsdl客戶端wsdl2java時,它生成客戶端,但在生成過程結束時給出端口443錯誤。當我通過eclipse中的Web服務資源管理器測試服務時,我得到javax.net.ssl.SSLHandshakeException sun.security.validator.ValidatorException:PKIX路徑構建失敗:sun.security.provider.certpath.SunCertPathBuilderException:無法找到有效的證書要求的目標錯誤的路徑。我也檢查了這個錯誤,但我找不到解決方案。從wsdl到客戶端java web服務(服務器有自簽名證書)

有誰能告訴我請怎麼生成客戶端在eclipse apache tomcat與jdk 1.6,普通客戶端有什麼區別。

回答

0

首先,在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 =「<%PATH_TO_TRUST_STORE%> \ tes tkeys」

  2. 告訴你的Java /套接字工廠使用這種 「信任存儲」:

    System.setProperty( 「javax.net.ssl.trustStore中」, 「keystore_file」);

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