我的应用程序在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
文件。我现在正试图找出这个问题。