我在每个版本中都遇到了eclipselink以及JPA和Weblogic的问题。这似乎是一个未解决的错误。
我使用的配置是Kepler,Weblogic 10.3.5和Eclipselink 2.1。
它抛出的错误是:
java.lang.IllegalArgumentException: Object: <object> is not a known entity type.
我已经在persistence.xml文件中声明了所有类型。每次重新部署应用程序时都会发生错误。现在,我找到的唯一解决方法是重启服务器。然后它工作正常。
此错误似乎已存在很长时间了。
我发现这个帖子的情况相同:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=326552
除了重新启动服务器之外,还有什么想法可以解决?
谢谢。
答案 0 :(得分:0)
您是如何创建EntityManagerFactorys的?您必须在完成后关闭它们来维护它们的生命周期。错误中描述的问题是由于没有关闭工厂,这些工厂是静态保留的,因此在重新部署应用程序时会重复使用。旧的EMF将使用旧的类加载器,因此不能使用从重新部署的应用程序加载的实体。
解决它的唯一方法是在重新部署之前关闭旧的EntityManagerFactory。或者,在重新部署之前取消部署并等待垃圾收集以关闭它们可以正常工作。