 2008-07-28 22:48
浏览 235
已采纳

session跨应用共享

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

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

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

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

现在要尽快

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

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

怎么取到session呢?

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

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

估计要集群了。

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

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

  • 写回答

3条回答 默认 最新

  • someone_net 2008-07-29 12:56
    关注

    以前在搞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数据。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的