java – JAX-WS客户端:维护多个服务中的会话/ Cookie
发布时间:2020-12-14 05:46:12 所属栏目:Java 来源:网络整理
导读:我使用Netbeans根据WSDL文件自动创建webservice客户端.这很好,除了我使用的webservices要求我将HTTP头中的自定义cookie传递给每个webservice,以证明我的身份. 我使用一个名为Utility的webservice来获取我的授权.这将设置一个cookie,需要在所有后续调用中提供
我使用Netbeans根据WSDL文件自动创建webservice客户端.这很好,除了我使用的webservices要求我将HTTP头中的自定义cookie传递给每个webservice,以证明我的身份.
我使用一个名为Utility的webservice来获取我的授权.这将设置一个cookie,需要在所有后续调用中提供给任何Web服务. 这可以通过在Web服务的端口的BindingProvider上将javax.xml.ws.session.maintain设置为true来实现.这对于随后调用Utility webservice中的方法非常有用. 我需要将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) ) ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |