我目前正在尝试将我的 Web 应用程序从 JBoss 5.1 迁移到 JBoss 7.1.1。我将实体管理器注入到我的 jsp 文件中,但实体管理器始终为空。
持久性.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<!-- SSIS2 Productive Database -->
<persistence-unit name="SSIS2" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/SSIS2DSprod</jta-data-source>
<properties>
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.show_sql" value="false"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
</properties>
</persistence-unit>
</persistence>
JSP 文件中的实体管理器注入示例:
<%! @PersistenceContext(unitName = "SSIS2")
public EntityManager em;
@Resource
UserTransaction utx;
%>
部署本身没有错误,那么这里的实体管理器有什么问题呢?它在 JBoss 5.1 上运行没有问题。
编辑:standalone.xml 中的数据源:(删除了 IP 地址和 SSID)
<datasource jta="true" jndi-name="java:/SSIS2DSprod" pool-name="SSIS2DSprod" enabled="true" use-java-context="true" use-ccm="true">
<connection-url>jdbc:oracle:thin:@ip-address:1531:SSID</connection-url>
<driver>oracle</driver>
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
<pool>
<prefill>true</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>ssis2</user-name>
<password>ssis2</password>
</security>
</datasource>