У меня есть EAR-файл, который определяет EJB-JAR, WAR и множество других JAR-файлов. У меня есть ejb-jar-1.jar
, который определяет EJB, службы и объекты. Он также определяет persistence.xml
в папке META-INF
. В app-war.war
я определяю components.xml
, который объявляет persistence:entity-manager-factor
и persistence:mananged-persistence-context
элементов. Теперь в одном из моих сервисов в ejb-jar-1.jar
используется аннотация для ввода EntityManager
. Но когда код запускается EntityManager
, в этом сервисе всегда NULL
. Я не уверен, что происходит. И только EntityManager
, что он не в состоянии внедрить все другие инъекции работать правильно. Структура проекта ниже.EntityManager не вводится с использованием @PersistenceContext в EJB-JAR [JBOSS 7, Seam 2]
Любые предложения по решению этой проблемы? Указатели также были бы полезны. Я обновляю проект для запуска на JBOSS 7.1.1.Final.
Deployement информация
* JBOSS 7.1.1.FINAL
* Uses seam framework: jboss-seam-2.2.1.CR2.jar
* Uses Hibernate 3.4.0.GA
основного ear.ear
|__META-INF
| |____jboss-deployment-structure.xml
| |____application.xml
| |____jboss-app.xml
| |____MANIFEST.MF
|__lib
| |____somejar.jar
| |____somejar.jar
|__ejb-jar-1.jar
| |____META-INF
| |____persistence.xml
|__ejb-jar-2.jar
|__jboss-seam-2.2.1.CR2.jar
|__commons-lang-2.4.jar
|__commons-codec-1.1.jar
|__jasypt-1.6.jar
|__app-war.war
|____components.xml
JBoss развертывания-structure.xml
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
<ear-subdeployments-isolated>false</ear-subdeployments-isolated>
<deployment>
<exclusions>
<module name="javax.faces.api" slot="1.2"/>
<module name="com.sun.jsf-impl" slot="1.2"/>
<module name="org.hibernate" slot="main"/>
<module name="org.hibernate.validator" slot="main"/>
<module name="org.apache.commons.lang"/>
<module name="org.apache.commons.collections"/>
<module name="org.apache.commons.codec"/>
<module name="org.picketlink" slot="main"/>
<module name="org.picketbox" slot="main"/>
<module name="org.javassist" slot="main"/>
<module name="org.dom4j" slot="main"/>
</exclusions>
<dependencies>
<module name="javax.faces.api" slot="1.2" export="true"/>
<module name="com.sun.jsf-impl" slot="1.2" export="true"/>
<module name="org.javassist" slot="1" export="true"/>
<module name="org.apache.commons.logging" export="true"/>
</dependencies>
</deployment>
<sub-deployment name="app-war.war">
<exclusions>
<module name="javax.faces.api" slot="main"/>
<module name="com.sun.jsf-impl" slot="main"/>
</exclusions>
<dependencies>
<module name="javax.faces.api" slot="1.2"/>
<module name="com.sun.jsf-impl" slot="1.2"/>
<module name="deployment.main-ear.ear.ejb-jar-1.jar" />
<module name="deployment.main-ear.ear.ejb-jar-2.jar" />
<module name="deployment.main-ear.ear.jboss-seam-2.2.1.CR2.jar"/>
</dependencies>
</sub-deployment>
<module name="deployment.main-ear.ear.jasypt-1.6.jar" />
<module name="deployment.main-ear.ear.commons-codec-1.1.jar" />
<module name="deployment.main-ear.ear.commons-lang-2.4.jar" />
</jboss-deployment-structure>
application.xml
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/javaee/application_6.xsd"
version="6">
<description>myapp</description>
<display-name>myapp</display-name>
<initialize-in-order>true</initialize-in-order>
<library-directory>lib</library-directory>
<module>
<ejb>ejb-jar-1.jar</ejb>
</module>
<module>
<ejb>ejb-jar-2.jar</ejb>
</module>
<module>
<ejb>jboss-seam-2.2.1.CR2.jar</ejb>
</module>
<module>
<web>
<web-uri>app-war.war</web-uri>
<context-root>/app</context-root>
</web>
</module>
</application>
components.xml
<?xml version="1.0" encoding="UTF-8"?>
<components ...>
<core:init debug="@[email protected]" jndi-pattern="@[email protected]" security-enabled="@[email protected]" precedence="30" />
<persistence:entity-manager-factory name="entityManagerFactory" persistence-unit-name="coreUnit" precedence="30"/>
<persistence:managed-persistence-context name="entityManager" auto-create="true" entity-manager-factory="#{entityManagerFactory}" precedence="30"/>
<security:persistent-permission-resolver permission-store="#{cacheEnabledJpaPermissionStore}" />
<transaction:ejb-transaction precedence="30"/>
...
</components>
Вы также задали их на https://community.jboss.org/thread/232590 тоже – KNU