我使用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 w / o任何配置,应用程序将抛出“org.springframework.ws.client.WebServiceTransportException”。
答案 0 :(得分:0)
设置messageSender bean的httpClient属性。
请参阅我的其他帖子,了解如何配置httpClient bean以解决自签名证书问题。 sending https post request with post data using spring web
无需将密钥导入密钥库。