如何使用OpenXava 4.6与Glassfish 2.2修复此错误:
javax.servlet.ServletException: java.lang.NoSuchMethodError: javax.persistence.EntityManager.getMetamodel()Ljavax/persistence/metamodel/Metamodel
尝试从浏览器访问我的测试模块时出现此错误。
http://localhost:8080/testmod/xava/module.jsp?application=testmod&module=test
答案 0 :(得分:1)
在我的情况下,使用带有glassfishESBv22的openxava 4.6给了我错误java.lang.NoSuchMethodError:javax.persistence.EntityManager.getMetamodel ...所以当我用OX4.6将服务器更改为默认的tomcat包时,它工作正常。这意味着它是glassfish服务器问题...最后我使用了最新的glassfish服务器v3.1.2,它也运行良好。所以问题解决了......只有将服务器更改为最新的服务器才是解决方案。
答案 1 :(得分:0)
OpenXava 4.6使用JPA2,而您使用的应用程序服务器使用JPA1。如果您需要使用旧的应用程序服务器,则可以配置类加载器,以便使用包含OpenXava应用程序的JPA引擎。