1

过去几天我一直在努力解决这个错误。请有人指出出了什么问题。

我在 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 的变化。任何想法,任何人?

4

0 回答 0