我在客户端代码中使用Spring WebServiceTemplate向现有的第三方Web服务发送请求。
<bean id="vehicleQuotationWebServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate">
<constructor-arg ref="messageFactory"/>
<property name="marshaller" ref="vehicleQuotationMarshaller" />
<property name="unmarshaller" ref="vehicleQuotationMarshaller" />
<property name="faultMessageResolver" ref="vehicleServiceClientFaultMessageResolver" />
<property name="defaultUri" value="http://localhost:8080/quote/endpoints"/>
</bean>
一切正常,直到他们从服务器端添加安全检查。现在,为了通过服务器端安全认证,我需要将一些值从cookie传递到服务器。我可以通过修改http标头(在那里添加cookie的值)在SoapUI中轻松完成,但我的问题是如何使用Spring WebServiceTemplate
在Java代码中执行此操作?
答案 0 :(得分:1)
您可以扩展WebServiceTemplate
或以更简单的方式使用扩展Spring的自定义发件人
org.springframework.ws.transport.http.CommonsHttpMessageSender
并在bean定义中设置
<bean id="vehicleQuotationWebServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate">
<constructor-arg ref="messageFactory"/>
<property name="marshaller" ref="vehicleQuotationMarshaller" />
<property name="unmarshaller" ref="vehicleQuotationMarshaller" />
<property name="faultMessageResolver" ref="vehicleServiceClientFaultMessageResolver" />
<property name="defaultUri" value="http://localhost:8080/quote/endpoints"/>
<property name="messageSender">
<bean class="org.springframework.ws.transport.http.MyHttpComponentsMessageSender"/>
</property>
</bean>
看一下Spring论坛