JBoss项目中配置了 persistence-unit ,按照步骤:
1.配置oracle-ds数据源,这个文件直接放到jboss-5.1.0.GA\server\default\deploy 下面:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>DS.ejb.ora</jndi-name>
<connection-url>jdbc:oracle:thin:@192.168.15.27:1521:orcl</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>orcl</user-name>
<password>orcl</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<metadata>
<type-mapping>Oracle10g</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
2.接着在EJB项目中的增加配置文件 /demo-ejb/src/main/resources/META-INF/persistence.xml,然后打包ejb.jar ,eclipse 配置到 jboss5中启动 。
<?xml version="1.0" encoding="UTF-8"?>
<persistence 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"
version="1.0">
<persistence-unit name="data.ejb.ora" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<non-jta-data-source>java:/DS.ejb.ora</non-jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />
<property name="hibernate.jdbc.fetch_size" value="50" />
<property name="hibernate.jdbc.batch_size" value="100" />
<property name="hibernate.connection.release_mode" value="after_transaction" />
</properties>
</persistence-unit>
</persistence>
3.创建WEB项目,引入ejb.jar包,eclipse启动项目.
功能运行中一直出现报错 HibernatePersistence cannot be cast to javax.persistence.spi.PersistenceProvider。
经过一番处理,最后发现 需要将EJB 和 web项目部署到同一个启动的JVM中,可以避免这个错误。
同一个启动的JVM中:我理解就是指加入相同启动路径下,例如都放到 jboss-5.1.0.GA\server\default\deploy 下进行启动。
如果需要设置启动顺序,可以参考下面的链接设置:https://blog.youkuaiyun.com/csdn122325735/article/details/128641529