今天遇到问题。
abc.ClassA a = (abc.ClassA) request.getsession().getAttribute();
我在这里得到了classcast异常。
从项目构建路径中的jar文件引用 abc.ClassA
。
我还读到了关于正在加载不同类加载器的类,问题可能就是问题。
答案 0 :(得分:1)
你的班级由两个不同的班级加载者加载 我猜你的jar在类加载器层次结构中位于两次:一次在父路径(liblogic的lib?)中,一次在一个孩子(war?)
最好的解决方案是在类路径上只放一个jar。
如果这是不可能的,您可以尝试更改类加载器的客户端优先/客户端最后行为。
提示:您可以轻松调试它并轻松获取有问题的类加载器。停止在有问题的行中的调试器中,然后比较request.getsession().getAttribute().getClass().getClassloader()
和abc.ClassA.class.getClassloader()