在将JPA中的对象分配给ManagedBean的属性时,我得到了ClassCastException:
Object r = query.getSingleResult(); // javax.persistence.Query
ClassLoader c1 = this.getClass().getClassLoader();
ClassLoader c2 = r.getClass().getClassLoader();
user = (User) r; // blubb.model.User
问题是c1(ManagedBean)和c2(EclipseLink)是不同的ClassLoader:
c1:WebappClassLoader(delegate = true; repositories = WEB-INF / classes /)
c2:WebappClassLoader(delegate = true)
我该如何解决这个问题?
答案 0 :(得分:2)
你的环境是什么?您使用的是Java EE,Spring,OSGi吗?哪个服务器,WLS,WAS,GF?
您是否重新部署了申请?持久性单元是管理还是非管理?
可能是您重新部署了应用程序,但从未关闭过EntityManagerFactory,因此仍然使用旧类进行部署。
答案 1 :(得分:0)