如何配置 Spring MVC 4 以使用 Web 服务使用者以两种方式 SSL 发送和接收 soap 消息?
How to Configure Spring MVC 4 to send and receive soap messages in two way SSL using Web Service Consumer?
我尝试使用 Spring Ws 以两种方式配置 Spring MVC 以连接到第三方,但由于缺少文档,我决定集成我的 Spring带有 Web 服务消费者的 MVC 4 应用程序。我是 Web 服务的初学者 consumption.I 想知道 如何配置我的 Spring MVC 4 应用程序与带有基于注释的配置的 Web 服务消费者实现与第三方的双向 SSl 通信,并在发送到 https 服务器之前加密我的 soap 消息?如果有 links 或示例代码会有所帮助。
此外,如果 WSDL 位于 https link 中,我该如何生成 类?
这个问题很大。没有简单的解决方案
我可以提供手册的步骤和指南
1)解决 CXF 依赖关系以在您的项目中包含库
使用maven、ivy或者下载。你需要 jax-ws 和相关的
http://cxf.apache.org/docs/using-cxf-with-maven.html
2) 使用 wsdl2java 为您的 wsdl
生成一个 Java 客户端
例如
wsdl2java -p com.mycompany.greeting Greeting.wsdl
http://cxf.apache.org/docs/wsdl-to-java.html
3) 以编程方式创建 jax-ws
wdsl2java 已经为您完成了工作
http://cxf.apache.org/docs/how-do-i-develop-a-client.html#HowdoIdevelopaclient?-JAX-WSProxy
HelloService service = new HelloService();
Hello helloClient = service.getHelloHttpPort();
String result = helloClient .sayHi("Joe");
注意:也可以配置spring
4) 配置客户端证书认证
定义一个管道文件,引用您的证书。这是一个例子
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
xmlns:sec="http://cxf.apache.org/configuration/security"
xsi:schemaLocation="http://cxf.apache.org/transports/http/configuration
http://cxf.apache.org/schemas/configuration/http-conf.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<http-conf:conduit name="*.http-conduit">
<http-conf:tlsClientParameters disableCNCheck="true" secureSocketProtocol="TLS">
<sec:keyManagers keyPassword="password" >
<sec:keyStore type="pkcs12" password="password"
file="yourcertificate.p12" />
</sec:keyManagers> </http-conf:tlsClientParameters>
<http-conf:client Connection="Keep-Alive" MaxRetransmits="1" AllowChunking="false" />
</http-conf:conduit>
</beans>
如果您更喜欢以编程方式进行,您可以这样做
Client client = ClientProxy.getClient(helloClient);
HTTPConduit http = (HTTPConduit) client.getConduit();
//set the parameters in a similar way to file
我尝试使用 Spring Ws 以两种方式配置 Spring MVC 以连接到第三方,但由于缺少文档,我决定集成我的 Spring带有 Web 服务消费者的 MVC 4 应用程序。我是 Web 服务的初学者 consumption.I 想知道 如何配置我的 Spring MVC 4 应用程序与带有基于注释的配置的 Web 服务消费者实现与第三方的双向 SSl 通信,并在发送到 https 服务器之前加密我的 soap 消息?如果有 links 或示例代码会有所帮助。 此外,如果 WSDL 位于 https link 中,我该如何生成 类?
这个问题很大。没有简单的解决方案
我可以提供手册的步骤和指南
1)解决 CXF 依赖关系以在您的项目中包含库
使用maven、ivy或者下载。你需要 jax-ws 和相关的 http://cxf.apache.org/docs/using-cxf-with-maven.html
2) 使用 wsdl2java 为您的 wsdl
生成一个 Java 客户端例如
wsdl2java -p com.mycompany.greeting Greeting.wsdl
http://cxf.apache.org/docs/wsdl-to-java.html
3) 以编程方式创建 jax-ws
wdsl2java 已经为您完成了工作 http://cxf.apache.org/docs/how-do-i-develop-a-client.html#HowdoIdevelopaclient?-JAX-WSProxy
HelloService service = new HelloService();
Hello helloClient = service.getHelloHttpPort();
String result = helloClient .sayHi("Joe");
注意:也可以配置spring
4) 配置客户端证书认证
定义一个管道文件,引用您的证书。这是一个例子
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
xmlns:sec="http://cxf.apache.org/configuration/security"
xsi:schemaLocation="http://cxf.apache.org/transports/http/configuration
http://cxf.apache.org/schemas/configuration/http-conf.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<http-conf:conduit name="*.http-conduit">
<http-conf:tlsClientParameters disableCNCheck="true" secureSocketProtocol="TLS">
<sec:keyManagers keyPassword="password" >
<sec:keyStore type="pkcs12" password="password"
file="yourcertificate.p12" />
</sec:keyManagers> </http-conf:tlsClientParameters>
<http-conf:client Connection="Keep-Alive" MaxRetransmits="1" AllowChunking="false" />
</http-conf:conduit>
</beans>
如果您更喜欢以编程方式进行,您可以这样做
Client client = ClientProxy.getClient(helloClient);
HTTPConduit http = (HTTPConduit) client.getConduit();
//set the parameters in a similar way to file