Glassfish EJB 3 OpenJPA 2 - PullRequest
       21

Glassfish EJB 3 OpenJPA 2

0 голосов
/ 21 марта 2011

Я застрял между молотом и наковальней в данный момент с этой проблемой. Если я определю свой контекст постоянства как:

@PersistenceContext(unitName = "persistentUnit")
private EntityManager entityManager;

Glassfish отказался запускаться с ошибкой:

SEVERE: Could not resolve a persistence unit corresponding to the persistence-context-ref-name [com.ckd.business.MusicService/entityManager] in the scope of the module called [home]. Please verify your application.

Но если я изменил объявление на:

e@PersistenceContext(name = "persistentUnit")
private EntityManager entityManager;

Glassfish может развернуть мой WAR-файл, но когда я загружаю страницу, я получаю следующее:

java.lang.IllegalStateException: Unable to retrieve EntityManagerFactory for unitName null

Какого черта ?! Я сохранил файл persistence.xml в каталоге WEB-INF \ classes \ META-INF согласно требованию и увидел, что Glassfish правильно загрузил JPA. Но не важно, чем я занимаюсь, Glassfish всегда терпит неудачу. Я использую Glassfish 3.1 OpenSource Edition .

Кто-нибудь знает решение или обходной путь для этого? Спасибо.

1 Ответ

0 голосов
/ 21 марта 2011

Не решение, но некоторые мысли:

Я думаю, что первое - это правильное использование. unitName должно быть таким же, как в вашем файле persistence.xml. Там должно быть что-то вроде этого

<persistence-unit name="persistentUnit">
 ...
</persistence-unit>

Как видно из ответа на этот вопрос , помните, что внедрение происходит после конструктора.

Надеюсь, это поможет продвинуться немного дальше.

...