gogomarine 写道
lvff1314 写道
跟你遇到基本相同的情况,移动多平台访问,最初决定使用PHPRPC,后来发现没有Objective-c,而所谓的hprose又不提供下载,故转道hessian,目前我用的最新的4.0.7,server端同样使用的spring进行hessian服务发布,但是遇到了一个比较尴尬的问题,我发现hessian在server端获取session比较困难,仔细查看client源码发现没有cookie机制,后对源码进行扩展增加了对response的header “Set-Cookie”的处理,但仍无效果。。。而且发现,spring通过自己的mvc进行发布的时候并没有调用hessian提供的ServiceContext.begin(...),而在hessian自带的servlet里是调用了该方法以及end方法,故在我们的逻辑里可以使用ServiceContext的getContextRequest()方法获取Request进而获取session,无奈。。。。
关于session的情况你遇到过吗?
打了一大堆字,点错了之后,全部被清掉了~郁闷
你可以参考
http://qieqie.iteye.com/blog/82492上面那个帖子有点年代了,部分内容在现在好像已经不需要了。
用session无非就是想要有状态,我们可以通过添加请求头来做类似的事情,可能要结合filter来做状态的保存:
在 Hessian 4.0+中,HessianProxy 有个方法 protected void addRequestHeaders(HessianConnection conn),我们可以在每次请求之前,调用这个,然后添加请求头HessianConnection#public void addHeader(String key, String value);
在server那边读取请求头,进行标示就好了~