过去几天我一直在努力解决这个错误。请有人指出出了什么问题。
我在 Weblogic Server 10.0 上的生产中有一个 EAR 应用程序工作得很好。当我在 Weblogic Server 10.3.4 上部署相同的构建 EAR 时,我收到一个错误:
范围/projectEARName 中没有名为“em”的持久性单元。可用的持久性单位:[]
该应用程序是一个带有爆炸 JAR 和 WAR 的爆炸 EAR。JAR 使用 JPA(Kodo 框架,即 WebLogic 中的 JPA RI)和 EJB3。WAR 使用 JSF 框架。
项目最终构建文件夹结构(使用 ANT 构建;全部展开;部署在 WLS 中)
- 耳朵
- 罐
- 项目类
- 元信息
- 持久性.xml
- ejb-jar.xml
- weblogic-ejb-jar.xml
- 战争
- 项目的 UI 文件
- 网络信息
- 库
- 班级
- 元信息
- weblogic-application.xml
- 应用程序.xml
- 罐
持久性.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">
<persistence-unit name="PU" transaction-type="JTA">
<provider>kodo.persistence.PersistenceProviderImpl</provider>
<jta-data-source>SMDS</jta-data-source>
<class>com.aaa.bbbb.domainobjects.cccc</class>
<class>com.aaa.bbbb.domainobjects.dddd</class>
<class>com.aaa.bbbb.domainobjects.eeee</class>
<properties>
<property name="kodo.jdbc.SQLFactory" value="BatchLimit=-1, SupportsUnion=true"/>
<property name="kodo.DataCache" value="true(CacheSize=5000, SoftReferenceSize=0)"/>
<property name="kodo.RemoteCommitProvider" value="sjvm"/>
<property name="kodo.Log" value="DefaultLevel=INFO, Runtime=INFO, Tool=INFO, SQL=TRACE"/>
</properties>
</persistence-unit>
EJB 外观类(使用 EntityManager)
@Stateless(name="XYZFacade", mappedName="XYZFacade")
public class XYZFacadeBean implements XYZFacade {
@PersistenceContext
private EntityManager em;
}
我认为这个问题可能是由于 Weblogic 安装文件夹中模块文件夹中 JAR 的变化。任何想法,任何人?