0

我从这段代码中得到肥皂响应

SOAPConnectionFactory sfc = SOAPConnectionFactory.newInstance();
SOAPConnection connection = sfc.createConnection();
SOAPMessage soapMessageResponse = connection.call(soapRequest, new URL(serviceLocation));

我怎样才能使它基于 SSL?

我知道如何SSLSocketFactory通过SSLContext提供我指定的密钥库来创建。

我怎样才能告诉SOAPConnection班级SSLSocketFactoryor SSLContext?这样我的通讯就可以得到保障。

我不想在系统属性或 xml 文件中设置密钥库。我正在使用 Websphere 7。

编辑:

Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:600)
    at com.ibm.ws.webservices.engine.soap.SOAPConnectionImpl.callJAXWSDispatch(SOAPConnectionImpl.java:416)
    ... 49 more
Caused by: javax.xml.soap.SOAPException: javax.xml.ws.WebServiceException: javax.net.ssl.SSLHandshakeException: General SSLEngine problem
    at com.ibm.ws.webservices.engine.xmlsoap.saaj13only.SOAPConnectionJAXWS.call(SOAPConnectionJAXWS.java:72)
    ... 54 more
Caused by: javax.xml.ws.WebServiceException: javax.net.ssl.SSLHandshakeException: General SSLEngine problem
4

4 回答 4

2

登录管理控制台并通过 SSL 证书和密钥管理 > SSL 配置 > NodeDefaultSSLSettings > 密钥库和证书 > NodeDefaultTrustStore > 签名者证书添加证书

于 2012-07-13T13:47:46.227 回答
1

通常,除了提供以 https:// 开头的端点 URL 之外,您不需要做任何事情。

Axis2 使用 http-commons 反过来将使用 JSSE 来处理安全性。因此,只要您正确配置了 JSSE,它应该可以开箱即用,除了在 URL 中传递 https 之外没有任何变化。

于 2012-06-05T14:34:29.033 回答
0

伊姆兰,你试过这个技巧吗?“您必须从您尝试连接的远程主机检索签署者证书并将它们添加到 WAS 服务器信任库”

http://turanunes.wordpress.com/2011/05/04/cwpki0022e-ssl-handshake-failure/

于 2012-06-07T13:50:55.570 回答
0

这行代码在 SSL 的情况下不起作用。

SOAPMessage soapMessageResponse = connection.call(soapRequest, new URL(serviceLocation));

为了从axis2 webservice通过SSL获得响应,您需要打开像给定的流[here][1]

于 2012-07-20T05:42:13.717 回答