0

我已经根据Spring 远程处理文档设置了我的服务,但是在客户端应用程序中,我想调用服务方法,同时重用相同的 HTTP 会话,因为我想在服务器上存储与会话相关的数据(而不是查询每次通话的数据)。

这可能吗?

客户端spring服务配置:

<bean id="partnersServiceImpl" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
    <property name="serviceUrl" value="http://localhost:8080/partners" />
    <property name="serviceInterface" value="somePackage.PartnersService" />
</bean>

目前,每个调用的方法都会生成一个新的 sessionID:

PartnersService partners = (PartnersService) context.getBean("partnersServiceImpl");

List<?> partnersList = partners.getSomeData(2011); // Will have one SessionID
partnersList = partners.getSomeData(2012); // Will have a new SessionID
4

2 回答 2

1

查看源代码HessianProxy.sendRequest()- 它使用标准URLConnection连接到服务器并且不处理任何 cookie。因此,我相信 Hessian 根本不支持 cookie。毕竟 HTTP 只是一种传输协议,而 cookie 是严格与浏览器相关的技术。

于 2012-08-29T11:45:02.767 回答
0

尝试将此代码放在应用程序的最开始:

CookieHandler.setDefault( new CookieManager( null, CookiePolicy.ACCEPT_ALL ) );

这是 cookie 支持激活的简单设置。有关更多信息,请参阅 javadocs。我也有一个 Hessian 远程处理,这就是诀窍。

于 2012-11-30T17:52:43.557 回答