我们正在研究一个项目,我们正在使用CXF框架提供的JaxWSProxyFactoryBean来调用webservices。 我正在使用SPRING配置来创建客户端,而不是直接在代码中使用API。 我也在设置maintain_session属性来确保会话由WS客户端维护。JaxWSProxyFactoryBean共享HTTP会话
< JAXWS:客户端ID = “userAuthenticationServiceClient1” 地址= “$ {} application.deployment.url/UserAuthentication” 服务类= “com.authentication.webservice.IUserAuthenticationService” 抽象= “真” > < JAXWS:性能> <输入键= “javax.xml.ws.session.maintain” > <值类型= “java.lang.Boolean的” >真< /值> < /条目> </JAXWS:属性> </jaxws:客户端>
但我发现会话不是跨各种web服务实例维护的。 为了更清楚 如果有像wc1,wc2,wc3这样的代理客户端。在wc1上调用的所有操作都将有其会话,而wc2将创建新会话。 有人可以让我知道我需要做什么设置,以便所有的ws客户端将共享会话吗?
嘿丹尼尔,谢谢你回复我的帖子。但它不可能使用上面的API,因为我已经提到我正在使用SPRING托管的bean。由于由jaxws:client创建的实例被注入,我创建的任何类都不知道它们是否调用任何Web服务。我想有一个通用的方式来做到这一点,而不需要让我的课程知道他们住在哪里:) – CuriousMind 2009-11-17 03:14:32
啊。在这种情况下,我唯一能想到的是编写一对拦截器来做到这一点。一个“In”拦截器,用于记录所有会话cookie和一个“Out”以添加/更新会话cookie。配置所有的东西。 –
2009-11-17 19:05:10