WLS 10.3.4 - 作用域 xxx_EJB.jar 中没有名为"xxx"的持久性单元。可用的持久性单元:[]



我有一个包含4个模块的企业应用程序项目。它部署在WLS 10.3.4上。我正在使用eclipsehelios与eclipse的oracleweb工具进行开发。我的机器上的本地WLS是作为开发模式安装的。

项目结构如下:

xxx_EAR
|-> xxx_JPA
|-> xxx_EJB
|-> xxx_EJBClient
|-> xxx_WEB

在xxx_EAR/APP-INF/lib 中跨模块使用的常见jar

xxx_JPA内部是具有三个持久性单元的persistence.xml,xxx_EJB中是使用@PersistentContext对其进行引用的类bean。

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是以生产模式安装的。

你有什么提示吗?

提前感谢!!

服务器的版本是否相同?如果你把JPAjar中的所有东西都放在EJB jar中,会发生什么?

我有同样的错误,但恰恰相反。我可以将EAR部署到生产或从WebLogic控制台进行部署,但我不能通过Eclipse WebLogic插件进行本地部署。对我有用的是在EJB项目的构建路径中更改javax.persistence.xxxx.jar的版本。

在我的例子中,我从javax.persistence_1.xxx更改为javax.persstence_2.xxx。

希望这能帮助到别人。在我寻找这个问题的解决方案的过程中,下面来自coderance的链接也对我有所帮助

http://www.coderanch.com/t/578851/EJB-JEE/java/persistence-unit-named-scope-BL

相关内容

  • 没有找到相关文章

最新更新