java session共享问题(深)。请教有懂的解惑
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类 --------------------编程问答-------------------- 你说的这个EJB里面有。。。 --------------------编程问答-------------------- java.lang.ClassCastException: User cannot be cast to User
首先确定2个User的类签名一致,包括但不限于 包名,字段名,以及各个方法。
另外,在User类中,追加以下代码
private static final long serialVersionUID = 1L(这个具体数字随便写);
必须保证2个User类中的 serialVersionUID 一样。 --------------------编程问答-------------------- 回复2L,确保User的类签名一致,因为我将A项目打成JAR包到B项目中。应该是完全一样的
已经在User类中添加了序列。但是还是会失败
补充:Java , Web 开发