问题描述:
项目跑在Weblogic10上,每当我修改一个类代码后,访问某个页面经过拦截器时就会报异常:
java.lang.ClassCastException:com.xxx cannot be cast to com.xxx
其中逻辑为是我从HttpSession获取到之前存入的对象强制转换成原本的com.xxx类型。
解决方法:
将com.xxx实现Serializable接口后不再出现该异常。
分析:
具体原因没有细研究,我估计是这样的:
在项目运行中修改了类文件后,Weblogic自动热加载修改后重新编译的class,此过程估计Weblogic会将热加载前的相关对象序列化保存了,热加载时再将这些对象反序列化加载到内存中来,而这是我的类没实现序列化接口而导致这样的问题了。