过去几天我一直在努力解决这个错误。请有人指出出了什么问题。
我在Weblogic Server 10.0上有一个正在生产的EAR应用程序正常工作。当我在Weblogic Server 10.3.4上部署相同的构建EAR时,出现错误:
范围/ projectEARName中没有名为'em'的持久性单元。可用的持久性单位:[]
该应用程序是一个爆炸的EAR,带有爆炸的JAR和WAR。 JAR使用JPA(Kodo框架,它是WebLogic中的JPA RI)和EJB3。 WAR使用JSF Framework。
项目最终构建文件夹结构(使用ANT构建;全部分解;哪些部署在WLS中)
的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发生了变化。任何想法,任何人?