Java 如何在SpringWebServiceTemplate中将cookie中的值添加到HTTP头?

Java 如何在SpringWebServiceTemplate中将cookie中的值添加到HTTP头?,java,spring,web-services,spring-ws,Java,Spring,Web Services,Spring Ws,我在客户端代码中使用Spring向现有的第三方web服务发送请求 <bean id="vehicleQuotationWebServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate"> <constructor-arg ref="messageFactory"/> <property name="marshaller" ref="vehicleQuota

我在客户端代码中使用Spring向现有的第三方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传递到服务器。我可以在SoapUI中通过修改http头(在那里添加cookie的值)轻松做到这一点,但我的问题是如何在Java代码中使用Spring的
WebServiceTemplate


您可以扩展
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>

看看春季论坛


谢谢,看起来和我要找的一模一样。我查看了那里的代码,如何从客户端获取HttpServletRequest srequest=(HttpServletRequest)((this.getPageContext()).getRequest()?“这”是指这里的客户端,对吗?您的服务器应该在调用登录方法或类似方法后将cookie返回给客户端。不,服务器不会向我发送cookie。我试图做的是设置messageSender的凭据(已知),以便请求能够通过服务器身份验证。我想出来了,事实上,如果我不需要从服务器上获取cookie,那就容易多了。我只是在锁定cookie的客户端中设置cookie名称和值。非常感谢,维扎曼尼罗!