java.lang.NoSuchMethodError: javax.persistence.EntityManager.getMetamodel()

Как исправить эту ошибку, используя 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

2 ответа

Решение

В моем случае использование openxava 4.6 с glassfishESBv22 дало мне ошибку java.lang.NoSuchMethodError: javax.persistence.EntityManager.getMetamodel... поэтому, когда я изменил сервер на комплект Tomcat по умолчанию с OX4.6, он работал нормально. это означает, что это была проблема сервера Glassfish... наконец, я использовал последний сервер Glassfish v3.1.2, и он также работал нормально. так что проблема решена... только смена сервера на последний была решением.

OpenXava 4.6 использует JPA2, в то время как сервер приложений, который вы используете, использует JPA1. Если вам нужно работать со старым сервером приложений, вы можете настроить загрузчики классов таким образом, чтобы использование движка JPA включало ваше приложение OpenXava.

Другие вопросы по тегам