java在tomcat中做session共享时出现问题,请教大家一起来解决下。谢谢环境:一个tomcat中有2个项目,A项目与B项目。
A项目:用户登陆系统。当用户登陆后,设置session共享,session保存的是一个user类
B项目:获取A项目的session对象成功,获取后获得Object。问题:
当B项目中对session进行强制转换成User类时出现
java.lang.ClassCastException: User cannot be cast to User若获取session在A项目中进行转换,则成功B项目中有A项目打包的jar包。但是当转换的时候出现转换错误,请问原理何在?
B项目利用反射机制能获取到User的值。有什么方法能解决问题吗,求教。谢谢
个人理解:
 可能tomcat中A项目保存了真正的对象实体,而B项目进行session引用时候,虽然B项目有A项目jar包。B项目中没有保存User对象的实例,我觉得应该使用序列化解决这种类实体的生成。但是不知道如何来序列化和实例化User类

解决方案 »

  1.   

    java.lang.ClassCastException: User cannot be cast to User首先确定2个User的类签名一致,包括但不限于 包名,字段名,以及各个方法。另外,在User类中,追加以下代码
    private static final long serialVersionUID = 1L(这个具体数字随便写);
    必须保证2个User类中的 serialVersionUID  一样。
      

  2.   

    回复2L,确保User的类签名一致,因为我将A项目打成JAR包到B项目中。应该是完全一样的
    已经在User类中添加了序列。但是还是会失败