Maven在NetBeans中测试时:
<persistence-unit name="TestJ" transaction-type="RESOURCE_LOCAL">
在放到JBOSS之前要做如下修改(连接Oracel数据库):
<persistence-unit name="TestJ" transaction-type="JTA">
<jta-data-source>java:/OracleDS</jta-data-source>
有时候会碰到几个问题,现在做下记录:
org.hibernate.ejb.HibernatePersistence cannot be cast to javax.persistence.spi.PersistenceProvider
意思是项目的jar包与jboss的包有冲突,解决办法是在项目的WEB-INF文件夹下增加两个文件:
jboss-web.xml
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 5.0//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd">
<jboss-web>
<class-loading java2ClassLoadingCompliance="false">
<loader-repository>
<!-- 的你包名:loader=生成的war包名.war -->
com.hactrox.*:loader=hactrox.war
<loader-repository-config>
java2ParentDelegation=false
</loader-repository-config>
</loader-repository>
</class-loading>
</jboss-web>
jboss-classloading.xml
<?xml version="1.0" encoding="UTF-8"?>
<classloading
xmlns="urn:jboss:classloading:1.0"
export-all="NON_EMPTY"
import-all="true"
parent-first="false"
/>
The chosen transaction strategy requires access to the JTA TransactionManager or Unable to build EntityManagerFactory
出现这个问题,需要在你的persistence.xml里面增加一个属性:
<property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>