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

我在Weblogic Server 10.0上有一个正在 生产环境 的EAR应用程序正常工作 . 当我在Weblogic Server 10.3.4上部署相同的构建EAR时,出现错误:

scope / projectEARName中没有名为'em'的持久性单元 . 可用的持久性单位:[]

该应用程序是一个爆炸的EAR,带有爆炸的JAR和WAR . JAR使用JPA(Kodo框架,它是WebLogic中的JPA RI)和EJB3 . WAR使用JSF Framework .

项目最终构建文件夹结构(使用ANT构建;全部分解;在WLS中部署)

  • EAR

  • JAR

  • 项目的类

  • META-INF

  • persistence.xml

  • ejb-jar.xml

  • weblogic-ejb-jar.xml

  • 战争

  • Project的UI文件

  • WEB-INF

  • lib

  • META-INF

  • weblogic-application.xml

  • application.xml

persistence.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 Facade类(使用EntityManager)

@Stateless(name="XYZFacade", mappedName="XYZFacade")
public class XYZFacadeBean implements XYZFacade {
    @PersistenceContext
    private EntityManager em;
}

我认为问题可能是由于Weblogic安装文件夹中modules文件夹中的JAR发生了变化 . 任何想法,任何人?