У меня есть проект с двумя ejb-баночками, расположенными в [WAR]/WEB-INF/lib. Оба ejb-jars используют JPA и содержат классы, аннотированные @Entity
. Но у меня проблемы с упаковкой и развертыванием (Glassfish 4). Если оба моих баночках содержит persistence.xml тогда я получаю следующее исключение на delpoymentwar, ejb-jar и persistence.xml
java.lang.RuntimeException: Could not resolve a persistence unit corresponding to the persistence-context-ref-name [...] in the scope of the module called [...]. Please verify your application.
Я поставил persistence.xml
в WAR/META-INF и удалять persistence.xml
из-баночки EJB. Развертывание успешно, но я получаю исключение во время выполнения
java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager: Exception Description: Problem compiling [SELECT ...]. [14, 18] The abstract schema type 'MyClass' is unknown.
MyClass
является @Entity
класс от одного из EJB-банок. Я думаю, что проблема отсутствует persistence.xml
в этом ejb-jar.
Наконец я пытаюсь поставить persistence.xml
в WAR и EJB-банки, но опять же я получаю
java.lang.RuntimeException: Could not resolve a persistence unit corresponding to the persistence-context-ref-name [...] in the scope of the module called [...]. Please verify your application.
Что такое подходящее место, чтобы положить persistence.xml
и что такое правильный способ для упаковки таких заявление?
Это работает так, когда все в одной банке. Я новичок в Java EE, поэтому мне кажется, что мне проще разместить ejb-jars в [war] WEB-INF/lib. У меня нет полного понимания упаковки в ухе. Если я упакую в ухо, я могу увидеть классы из одной ejb-jar внутри другого ejb-jar? – Joel