如何使用Spring WS配置我的Spring MvC 4应用程序与第三方(如银行)建立双向SSL连接。我需要交换证书并验证服务器证书,然后交换Soap消息。如果任何链接或代码或程序请您更新如何在Spring W中将SOAP请求消息发送到接受Soap请求消息的服务器?
7
A
回答
2
与密钥库和trustore必要的属性开始你的虚拟机所描述的here in the JSSE doc:
-Djavax.net.ssl.keyStoreType=yourKeystoreType(jks,pkcs12,etc.)
-Djavax.net.ssl.trustStoreType=yourTruststoreType(jks,pkcs12,etc.)
-Djavax.net.ssl.keyStore=/path/to/your/keystore
-Djavax.net.ssl.trustStore=/path/to/your/truststore
-Djavax.net.debug=ssl
-Djavax.net.ssl.keyStorePassword=...
-Djavax.net.ssl.trustStorePassword=...
然后在你的客户端代码,你需要获得SSLSocketFactory的
SSLSocketFactory sslsocketfactory =(SSLSocketFactory) SSLSocketFactory.getDefault();
并将其连接到WebServiceTemplate(摘录从ClientCustomSSL from apache examples拍摄创作的HttpClient):
WebServiceMessageSender sender = new HttpComponentsMessageSender(HttpClients.custom().setSSLSocketFactory(sslsocketfactory));
getWebServiceTemplate().setMessageSender(sender);
+0
如何在设置MessageSender之后使用marshall和receive方法 – briantaurostack7
3
Spring-WS是可能的。你必须使用Spring WS提供的WebServiceTemplate
API。以下是使用它的方法。
import java.io.StringReader;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import org.springframework.ws.WebServiceMessageFactory;
import org.springframework.ws.client.core.WebServiceTemplate;
import org.springframework.ws.transport.WebServiceMessageSender;
public class WebServiceClient {
private static final String MESSAGE =
"<message xmlns=\"http://tempuri.org\">Hello Web Service World</message>";
private final WebServiceTemplate webServiceTemplate = new WebServiceTemplate();
public void setDefaultUri(String defaultUri) {
webServiceTemplate.setDefaultUri(defaultUri);
}
// send to the configured default URI
public void simpleSendAndReceive() {
StreamSource source = new StreamSource(new StringReader(MESSAGE));
StreamResult result = new StreamResult(System.out);
webServiceTemplate.sendSourceAndReceiveToResult(source, result);
}
// send to an explicit URI
public void customSendAndReceive() {
StreamSource source = new StreamSource(new StringReader(MESSAGE));
StreamResult result = new StreamResult(System.out);
webServiceTemplate.sendSourceAndReceiveToResult("http://localhost:8080/AnotherWebService",
source, result);
}
}
请参阅本link
而另一个有用link2
相关问题
- 1. 如何打印SOAP请求消息?
- 2. 关于SOAP请求的'连接超时'(无法发送消息)
- 3. Spring集成Web服务器日志文件的SOAP请求消息(即使SOAP消息是不正确的)
- 4. 使用jquery的onvif soap消息请求
- 5. 在将SOAP请求发送到Web服务之前查看SOAP请求
- 6. 如何将现有的SOAP请求消息导入到SoapUI?
- 7. SCF服务消息协定命名空间在SOAP请求来
- 8. 发送SOAP请求
- 9. 发送SOAP消息
- 10. SOAP服务请求
- 11. 如何在Java中捕获SOAP请求和响应消息?
- 12. PHP - Zend SOAP请求.NET SOAP服务器
- 13. 在将SOAP消息发送到.NET中的WebService之前获取SOAP消息
- 14. 如何在android中发送soap请求?
- 15. Node.js发送OSC消息的HTTP请求
- 16. 在请求中添加头文件python中的SOAP消息
- 17. 如何发送curl中的SOAP请求
- 18. 发送SOAP请求用Matlab
- 19. 用Django发送SOAP请求
- 20. 如何获取SOAP请求消息的xml表示?
- 21. 从PHP发送SOAP请求
- 22. 用c发送SOAP请求#
- 23. 请求中额外的SOAP信息
- 24. 在请求的方法中访问SOAP消息头
- 25. Xcode发送HTTPS Soap请求
- 26. Android KSOAP2请求到PHP SOAP服务器
- 27. 向NOAA发送SOAP请求
- 28. Restlet:如何取消服务器请求日志消息
- 29. 如何将Python中的多部分/相关请求发送到SOAP服务器?
- 30. 通过libcurl向SOAP Web服务发送SOAP请求!
你想制作一个Web服务或消费呢?我有点困惑... 这听起来像你想要消耗一个虽然。 那么你应该看看这个: https://spring.io/guides/gs/consuming-web-service/ – NWessel
澄清,你需要SSL连接?对于您想要使用的Web服务? –
我建议你花一些时间来阅读Spring WS参考指南......除了SSL配置之外,本指南会告诉你所有你需要的东西。 –