java – JAX-WS客户端:维护多个服务中的会话/ Cookie

前端之家收集整理的这篇文章主要介绍了java – JAX-WS客户端:维护多个服务中的会话/ Cookie前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用Netbeans根据WSDL文件自动创建webservice客户端.这很好,除了我使用的webservices要求我将HTTP头中的自定义cookie传递给每个webservice,以证明我的身份.

我使用一个名为Utility的webservice来获取我的授权.这将设置一个cookie,需要在所有后续调用中提供给任何Web服务.

这可以通过在Web服务的端口的BindingProvider上将javax.xml.ws.session.maintain设置为true来实现.这对于随后调用Utility webservice中的方法非常有用.
问题在于,它仅维护该单个Web服务的会话/ cookie.我也需要它.

我需要将cookie传递给一个名为History的单独webservice如何实现?有一个超级服务类,实用程序和历史可以扩展和共享相同的会话状态是可行的?

解决方法

我找到了一个解决方

拨打电话后,您可以使用此方式获取响应标头:

((BindingProvider)port).getResponseContext().get(MessageContext.HTTP_RESPONSE_HEADERS);

找到Set-Cookie头并存储其值.

然后在您的下一个请求(在任何webservice)之前,您可以设置Cookie标题

((BindingProvider)port).getRequestContext().put(
            MessageContext.HTTP_REQUEST_HEADERS,Collections.singletonMap("Cookie",Collections.singletonList(cookieValue)
            )
        );
原文链接:https://www.f2er.com/java/121477.html

猜你在找的Java相关文章