2013-05-14 310 views
0

我們有一個最近通過https公開的web服務。無法使用https協議訪問webservice(ssl)

當我們嘗試使用JAX-WS客戶端通過https連接到它時,它會拋出以下異常 com.sun.xml.ws.client.ClientTransportException:HTTP傳輸錯誤:java.net.ConnectException:連接被拒絕:連接 這通常意味着在套接字連接上存在一些問題。 當我們嘗試使用webservice客戶端調用webservice的某些操作時,它會引發異常。 對web服務的http調用工作正常。

這裏有趣的是,這個問題只發生在我們部署了web服務並且首次調用了使用https協議訪問操作時。 現在,只要我們進行一個http調用,出乎意料的是,甚至https也開始工作。

如果有人遇到過這類問題,請給出一些建議。

回答

1

一般來說,您的java客戶端應該在可信密鑰存儲中擁有ssl證書。

證書管理使用keytool: 的keytool -import -keystore -trustcacerts -storepass trastedCert traustedCertPassword -noprompt -alias trastedCert -file trastedCert.cer

您可以添加信任的證書到您的JVM區(cacerts):

密鑰工具-import -trustcacerts -keystore cacerts中-storepass traustedCertPassword -noprompt -alias trastedCert -file trastedCert.cer

˚F或JBOSS應用服務器我使用的是下一個JAVA_OPTS PARAMS:

集JAVA_OPTS =%JAVA_OPTS%-Djavax.net.ssl.trustStore =%PATH_TO_CERT%\ traustedCert -Djavax.net.ssl.trustStorePassword = traustedCertPassword

+0

的這裏的問題不是關於證書獲取存儲的問題,因爲只要我進行第一次http呼叫,https呼叫就開始正常工作 – 2013-05-14 17:03:49