精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-24
为什么需要stateful hessian?RPC要的就是stateless,难道hessian客户端连自己的状态都管理不了吗?不会瘦到这种程度吧!
|
|
返回顶楼 | |
发表时间:2007-05-24
大部分没必要,有时有必要。
其实在我的帖子里面,倒没有一定是statefull,只是记录信息到ThreadLocal(即Current类中)。也就是我最想解决的是能够支持在Bo里面通过ThreadLocal的机制知道当前的请求者,这有可能有好处(有时候这种好处可能不小,比如控制安全,判断权限,记录访问日志等等) |
|
返回顶楼 | |
发表时间:2007-05-24
唉,咋就不理解偶的意思呢?不多说了,看附件的代码,附件没有考虑多线程问题,你用filter取代掉BasicServiceImpl里面service这一块代码,把取得的用户标识放到ThreadLocal就可以了。5行代码就可以搞定的事情,还弄这么麻烦....
|
|
返回顶楼 | |
发表时间:2007-05-24
good!
你的代码给了另外一个不错的思路了,关键是你提供的下面这个代码,我可以进行扩展,动态塞入一些附带想要传给服务器的数据,然后做Filter从Http Header取出来放到ThreadLocal (我还是免不了要N些封装类,使这些代码对编程透明,以及支持Spring配置。。。) 考虑一下,是否可以扩展Hessian使能够读取服务器传过来的HttpHeader数据,从而把session的cookie读出来? 如果可以的话,那HttpSession就可以使用了! 补充:很高兴看到readonly的代码! public class IdentityHessianProxyFactory extends HessianProxyFactory { public static final String IDENTITY_KEY = "_hessian_client_"; private String clientId; public IdentityHessianProxyFactory(String clientId) { super(); this.clientId = clientId; } protected URLConnection openConnection(URL url) throws IOException { URLConnection conn = super.openConnection(url); conn.setRequestProperty(IDENTITY_KEY, clientId); return conn; } } |
|
返回顶楼 | |
发表时间:2007-06-13
Java 6.0HttpUrlConnection已经支持Cookie了
public static void main(String[] args) { CookieHandler.setDefault(new CookieManager(null, CookiePolicy.ACCEPT_ALL)); HessianProxyFactory factory = new HessianProxyFactory(); try { TestService testService = (TestService) factory.create(TestService.class, "http://127.0.0.1:8080/hessian/remoting/TestService"); System.out.println(testService.getSessionId("您好.")); System.out.println(testService.getSessionId("您好.")); testService = (TestService) factory.create(TestService.class, "http://127.0.0.1:8080/hessian/remoting/TestService"); System.out.println(testService.getSessionId("您好.")); System.out.println(testService.getSessionId("您好.")); } catch (MalformedURLException e) { e.printStackTrace(); } } |
|
返回顶楼 | |
发表时间:2007-08-07
gwbasic 写道 Java 6.0HttpUrlConnection已经支持Cookie了
哦, 6.0 已经归入官方类库了. 我原来是把 JDK 源码中 plugin 部分的 MemoryCookieHandler rip 过来用的, 附件为代码, 6.0 以前的 JVM 还可以用. |
|
返回顶楼 | |