半路凉亭 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 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题