半路凉亭 2015-12-29 03:08 采纳率: 0%
浏览 1329

平台项目开发,与子独立系统登录时遇到的问题

最近在做个平台项目,遇到一个问题,请教下这里的高手,我尽量简单说下:
公司里在做一个平台项目,简单理解就是有一个统一的入口管理端,
底下有几个独立的子系统,这几个系统(平台和子系统)用的都是统一的框架,所以JAR包都是一样的。因为要求系统是从平台登录,然后直接免登录跳转到其他子系统,我用的是cookie+ehcache。现在就出现一个问题:
如果我把每个系统里相同的jar包放在各自的项目里的lib文件夹下,那么统一登录跳转子系统就没有问题,但是我把相同的jar包提取出来放在tomcat公用的文件夹下,就会报错

报的错误是我定义的在线用户对象不能转换
图片说明

可能我描述的不太清楚,举个例子吧。
我们做的这个平台系统包含很多相对独立的子系统,例如邮件系统、车辆管理系统、绩效考核系统等,这些系统上线后可能发在不同的服务器上。
我们公司的所有人都能操作这些系统,以前的做法是登录3次,但是今年我把老系统重新架构了,在这些系统上套了一个平台,这个平台是一些基础公用的操作模块、例如信息修改、工作日志、子系统列表等。
这里的子系统列表就是上面3个系统的连接路径,点击后直接就进去了,不用重新登录,我这里用的是简单的cookie+ehcache,
逻辑简单讲下,登录时,产生一个随机的唯一码存入到cookie中,且将当前用户信息保存为OnlineUser,然后将此对象存到cache,
登录平台后,跳转到子系统时,先获取当前cookie,然后通过cookie去cache里找当前对象,然后转换成OnlineUser。就是这里会因为jar放置位置的方式不同而引起不同的效果。
例如,在编译这几个子系统时,所有的JAR包都被编译到相对应系统的\WEB-INF\lib下,这样3个子系统此目录下的jar其实都是一模一样的,由于目前公司只给了一台服务器,所以我就想把这3个项目下的JAR包提取到tomcat下一个公用的文件夹下,
例如tomcat\my-lib下,如果这样做就会出现上面所说的同个对象不能转换,但是如果不提取这些JAR包,还是放在各自系统的lib目录下,就没有对象转换问题,可以直接跳转到子系统去。

  • 写回答

4条回答 默认 最新

  • threenewbee 2015-12-29 03:20
    关注

    不同的项目的对象不能直接转换,但是你可以序列化/反序列化在不同程序中传递。

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料