来自扩展类加载器类的classcastexception

时间:2012-03-08 10:06:39

标签: java classloader classcastexception

今天遇到问题。

abc.ClassA a = (abc.ClassA) request.getsession().getAttribute();

我在这里得到了classcast异常。

从项目构建路径中的jar文件引用

abc.ClassA

我还读到了关于正在加载不同类加载器的类,问题可能就是问题。

1 个答案:

答案 0 :(得分:1)

你的班级由两个不同的班级加载者加载 我猜你的jar在类加载器层次结构中位于两次:一次在父路径(liblogic的lib?)中,一次在一个孩子(war?)

最好的解决方案是在类路径上只放一个jar。

如果这是不可能的,您可以尝试更改类加载器的客户端优先/客户端最后行为。

提示:您可以轻松调试它并轻松获取有问题的类加载器。停止在有问题的行中的调试器中,然后比较request.getsession().getAttribute().getClass().getClassloader()abc.ClassA.class.getClassloader()