0

如何使用带有 Glassfish 2.2 的 OpenXava 4.6 修复此错误:

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
4

2 回答 2

1

在我的情况下,使用带有 glassfishESBv22 的 openxava 4.6 给了我错误 java.lang.NoSuchMethodError: javax.persistence.EntityManager.getMetamodel... 所以当我将服务器更改为使用 OX4.6 的默认 tomcat 捆绑包时,它工作正常。这意味着这是 glassfish 服务器的问题...最后我使用了最新的 glassfish 服务器 v3.1.2,它也运行良好。所以问题解决了......只有将服务器更改为最新的才是解决方案。

于 2013-01-11T10:20:53.380 回答
0

OpenXava 4.6 使用 JPA2,而您正在使用的应用程序服务器使用 JPA1。如果您需要使用旧的应用程序服务器,您可以配置类加载器,以便使用 JPA 引擎包含您的 OpenXava 应用程序。

于 2013-01-11T13:12:19.520 回答