2013-05-14 52 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