在Jboss / Wildfly迁移后,注入EntityManager会返回null

时间:2016-08-08 20:44:34

标签: java jpa jboss5.x wildfly-10 hibernate3

我的应用程序在JBoss AS 5.1.0中运行得非常好。我的目标是将其迁移到Wildfly 10。

下面是我的persistence.xml

<?xml version="1.0" encoding="UTF-8"?>    
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
        <persistence-unit name="ApplicationPersistenceUnit">
            <provider>org.hibernate.ejb.HibernatePersistence</provider>
            <jta-data-source>java:/MySQL_DS</jta-data-source>
            <jar-file>application_db_interface.jar</jar-file>
            <properties>
                <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
                <property name="jboss.entity.manager.jndi.name" value="java:/ApplicationPersistenceUnit"/>
                <property name="jboss.entity.manager.factory.jndi.name" value="java:/ApplicationPersistenceUnitFactory"/>
            </properties>
        </persistence-unit>
    </persistence>

以下是我的事务管理器类;

public class TransactionManager implements TransactionManagerI {

    @PersistenceContext(unitName="ApplicationPersistenceUnit")
    private EntityManager em;
...
}

我也尝试使用查找,但它仍然返回null;

public Session getSession() throws DAOException {
        ..
            em = (EntityManager) new InitialContext().lookup("java:/ApplicationPersistenceUnit");
        ..
    }

以下是项目架构;

->application.ear
->application.ear/application.war
->application.ear/db.jar
->application.ear/db.jar/META-INF/persistence.xml

我研究了其他解决方案并逐一尝试,但我还没弄明白。如果需要,我可以提供更多信息。

更新:我从wildfly管理控制台检查JNDI视图。我没有看到ApplicationPersistenceUnit。看起来服务器不绑定我的persistence.xml文件。我现在正试图找出这个问题。

0 个答案:

没有答案