我一直在尝试在独立的 JAX-WS 客户端中维护用户会话。服务器代码如 https://weblogs.java.net/blog/ramapulavarthi/archive/2006/06/maintaining_ses.html中所述。
我的问题出在客户身上。服务器确实将 JSESSIONID 与响应一起发送。但看起来客户端的调用不会随请求发送 JSESSIONID(我已经在 TCPMon 上对此进行了测试)。因此,每次请求到来时,服务器都会创建一个新会话。
经过一番谷歌搜索后,我发现我必须在请求上下文中设置 BindingProvider.SESSION_MAINTAIN_PROPERTY = true 才能维护客户端中的用户会话。但遗憾的是,这也不适合我。
我尝试使用 AXIS 生成存根,并且这里的会话得到了正确维护。Web 服务已部署在 Tomcat 中。
谢谢。