我从此代码中获得肥皂响应
SOAPConnectionFactory sfc = SOAPConnectionFactory.newInstance();
SOAPConnection connection = sfc.createConnection();
SOAPMessage soapMessageResponse = connection.call(soapRequest, new URL(serviceLocation));
如何使其基于SSL?
我知道如何从SSLSocketFactory
创建SSLContext
来指定密钥库。
如何告知SOAPConnection
课程SSLSocketFactory
或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
答案 0 :(得分:2)
登录管理控制台,通过SSL证书和密钥管理添加证书> SSL配置> NodeDefaultSSLSettings>密钥库和证书> NodeDefaultTrustStore>签名者证书
答案 1 :(得分:1)
除了提供以https://。
开头的端点网址之外,您通常不需要执行任何操作Axis2使用http-commons,而后者将使用JSSE来处理安全问题。因此,只要您正确配置了JSSE,它就应该开箱即用,除了在URL中传递https之外不做任何更改。
答案 2 :(得分:0)
http://turanunes.wordpress.com/2011/05/04/cwpki0022e-ssl-handshake-failure/
答案 3 :(得分:0)
这行代码在SSL的情况下不起作用。
SOAPMessage soapMessageResponse = connection.call(soapRequest, new URL(serviceLocation));
为了通过来自axis2 webservice的SSL获得响应,您需要打开给定[here][1]
的流。