session跨应用共享

现小弟遇到一个这样的问题。

在同一个tomcat下有两个应用项目A和B

怎么样才能拿到对方的session呢?或者其他办法也行..只要能实现多用户权限验证.!

非常感谢.!
[b]问题补充:[/b]
我汗。

现在要尽快

合项目我还问啥啊。。
[b]问题补充:[/b]
someone 谢谢你答复。。

ServletContext.getContext(String uriPath)取得另外一个WebApp的Context。

怎么取到session呢?

如果一直两个工程共享context 然后用户都从context拿吗?

几个人登陆怎么解决?
[b]问题补充:[/b]
还是谢谢了咯。

估计要集群了。

我现在有两个系统 放一起的。

现在客户要加上权限。。
汗~~

以前在搞jetspeet的时候,曾经涉及到过这个问题。
这个是一个被称为Web cross context的问题,

对于tomcat
首先要设定允许crosscontext。
server.xml

然后用ServletContext.getContext(String uriPath)取得另外一个WebApp的Context。

但是这里面有个问题,因为每个WebApp的Classload是单独不共用的,这样在从Session里面取出来每个自定义的对象时,会出现ClassCastExcept。
解决办法
1,把这些可能通过Session共享的Class让上级Classloader载入,比如放在ShareLib目录下面。这个最简单。但是因为这个上级classloader载入的,所以如果在这些类里面使用了静态变量共享数据的方式的话,就会出现问题。
2,当取得另外一个WebApp的Session数据时,改变其Classloader为自己Webapp的class咯ader。这个处理比较麻烦些,另外只能取得另外一个WebApp的Session数据,无法改变另外一个WebApp的Session数据。

[size=medium]存到数据库里
大哥。。。
两个项目之间怎么可能相互倒呢?
要不你就把他们作成插件工程
用ant把他们和起来[/size]

可一通过 ServletContext的setAttribute,getAttribute来共享数据。

想不通的是,为什么一个WebApp里面为什么会另外一个WebApp里面的其他用户的Session数据?是一个用户通过SSO同时登录到两个WebApp中了?
如果是多WebApp,多用户之间共享数据,通过这种方法可能不是一个好办法。