Ошибка при вводе менеджера сущностей с Wicket / JPA - PullRequest
2 голосов
/ 01 августа 2010

У меня есть приложение, использующее Wicket для уровня презентации с CDI / Weld, JPA 2.0, EJB 3.1 и т. Д. (Java EE 6), развернутое на GlassFish v3.0.1.

Когда я пытаюсь внедрить EJBна страницу калитки с помощью @EJB я получаю следующую ошибку: java.lang.IllegalStateException: невозможно получить EntityManagerFactory для unitName

Когда я пытаюсь ввести с помощью @Inject, я получаю следующую ошибку: java.lang.IllegalStateException: Невозможно преобразовать ejbRef для ejb UserRepository в бизнес-объект типа класса

. Я считаю, что проблема связана с JPA.Я использую ту же самую конфигурацию, которую я использовал с приложением JSF, которое работало должным образом, поэтому я теряюсь в том, что может быть проблема.Пулы соединений настроены правильно и корректно пропингуются через GlassFish, я включил wicket-weld на classpath, и я даже пытался использовать старый проект Java EE 5 wicketstuff для wicketstuff-javaeeapi с теми же результатами.

Любая помощь будет оценена.

Ответы [ 2 ]

1 голос
/ 02 августа 2010

Если вы получили исключение:

Невозможно получить EntityManagerFactory для unitName

Это может означать, что он не обнаружил ваш файл persistence.xml.Убедитесь, что он находится в каталоге WEB-INF\classes\META-INF.

Чтобы убедиться, что в вашем приложении включена JPA, перейдите в консоль администратора в GlassFish, перейдите в раздел «Приложения» и посмотрите, показывает ли оно что-то вроде [ejb, web, weld, jpa] дляваше приложение.Если он не показывает jpa, значит, он не находит ваш файл конфигурации JPA.

0 голосов
/ 02 августа 2010

Всегда можно попытаться найти EJB через его стандартное имя "java: global". Это должно, по крайней мере, позволить вам исключить калитку как возможный источник проблем и немного приблизить вас к работающей системе.

...