我有 4 个模块的企业应用程序项目。它部署在 WLS 10.3.4 上。我正在使用 Eclipse helios 进行开发,并使用用于 Eclipse 的 oracle Web 工具进行开发。我机器上的本地 WLS 安装为开发模式。
项目结构是这样的:
xxx_EAR
|-> xxx_JPA
|-> xxx_EJB
|-> xxx_EJBClient
|-> xxx_WEB
跨模块使用的常见 jar 位于 xxx_EAR/APP-INF/lib
在 xxx_JPA 中是具有三个持久性单元的 persistence.xml,在 xxx_EJB 中是类、bean,它们使用 @PersistentContext 来引用它们。
EJB version is 3.0
JPA is 1.0 (Eclipselink 1.1.x)
并且在我的电脑上本地一切正常。当我尝试在测试 WLS 上部署 EAR 文件时,出现以下异常
Unable to deploy EJB: XxxFacadeImpl from xxx_EJB.jar:
No persistence unit named 'xxx_EJB' is available in scope xxx_EJB.jar. Available persistence units: []
at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:469)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:518)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:159)
...
如我所见,服务器之间的唯一区别在于安装模式,测试 WLS 安装为生产模式。
你有什么提示吗?
提前致谢!!