我们曾经有一个包含EJB jar和WAR的EAR。我们从EJB发送了一个dto类到WAR。一切都很好。
现在我们尝试从EAR中提取WAR并创建WAR使用的EJB客户端(API jar)。此API jar包含我们从EJB发送到WAR的dto类。 在EAR中,API部署在lib目录中 在WAR中,我们在WEB-INF / lib目录中具有相同的API jar 但是现在我们在访问dto类的内部时会得到一个ClassCastException。
对EJB的方法调用没问题,我们可以在WAR中分配生成的List。但是当我们尝试从DTO类中读取值时,我们得到ClassCastException 我们一遍又一遍地检查,因此API jar不会在EAR或WAR的某处导入两次。但现在我们处于放弃的边缘。
任何人都知道我们做错了什么?
答案 0 :(得分:0)
“当我们尝试从DTO类中读取值时,我们得到ClassCastException”
只需将其作为对象说出 obj ,然后在其中打印其类型
日志或控制台(在获得例外情况之前记录)
这样的事情应该有所帮助: obj.getClass()。getName()。
然后查看您的代码并查看:1)您在代码中投入的内容
或2)您在代码中分配的类型的变量
这(加上你可能有的堆栈跟踪)应该有帮助
你明白为什么你会得到这个例外