最近几天我一直在努力解决这个错误 . 请有人指出出了什么问题 .
我在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发生了变化 . 任何想法,任何人?