1

我使用 spring ws 模板创建了一个 Web 服务客户端。这对 http 协议按预期工作。现在我想让它与 https 一起工作。我有相关的客户端密钥库(jks 文件),现在我想配置消息发送者以发送安全请求。你能帮我解决这个问题吗?

这是我的spring bean配置:

<bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory"/>
<bean id="tokenrMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
    <property name="contextPath" value="com.token.dto.v1" />
</bean>
<bean id="tokenServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate">
    <constructor-arg ref="messageFactory" />
    <property name="marshaller" ref="tokenrMarshaller"></property>
    <property name="unmarshaller" ref="tokenrMarshaller"></property>
    <property name="messageSender">
        <bean class="org.springframework.ws.transport.http.HttpComponentsMessageSender" />    
    </property>
    <property name="defaultUri" value="${token.url}" />       
</bean>

如果我将 url 从 http 更改为 https 而没有任何配置,应用程序会抛出“org.springframework.ws.client.WebServiceTransportException”。

4

1 回答 1

0

请参阅http://docs.spring.io/spring-ws/site/apidocs/org/springframework/ws/transport/http/HttpComponentsMessageSender.html#setHttpClient%28org.apache.http.client.HttpClient%29的 javadoc

设置 messageSender bean 的 httpClient 属性。

请参阅我的另一篇文章,了解如何配置 httpClient bean 以解决自签名证书问题。 使用spring web发送带有post数据的https post请求

无需将密钥导入密钥库。

于 2014-07-22T18:53:53.437 回答