Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java WLS 10.3.4-没有命名为';xxx和x27;在xxx_EJB.jar范围内提供。可用持久性单位:[]_Java_Jpa_Ejb_Persistence Unit - Fatal编程技术网

Java WLS 10.3.4-没有命名为';xxx和x27;在xxx_EJB.jar范围内提供。可用持久性单位:[]

Java WLS 10.3.4-没有命名为';xxx和x27;在xxx_EJB.jar范围内提供。可用持久性单位:[],java,jpa,ejb,persistence-unit,Java,Jpa,Ejb,Persistence Unit,我有4个模块的企业应用程序项目。它部署在WLS 10.3.4上。我正在使用EclipseHelios与OracleWebToolsforEclipse进行开发。 我的机器上的本地WLS是以开发模式安装的 项目结构如下: xxx_EAR |-> xxx_JPA |-> xxx_EJB |-> xxx_EJBClient |-> xxx_WEB 跨模块使用的通用JAR位于xxx\u EAR/APP-INF/lib中 在xxx_JPA内部是persistence.xml,它有

我有4个模块的企业应用程序项目。它部署在WLS 10.3.4上。我正在使用EclipseHelios与OracleWebToolsforEclipse进行开发。 我的机器上的本地WLS是以开发模式安装的

项目结构如下:

xxx_EAR
|-> xxx_JPA
|-> xxx_EJB
|-> xxx_EJBClient
|-> xxx_WEB
跨模块使用的通用JAR位于xxx\u 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是作为生产模式安装的

你有什么提示吗


提前谢谢

服务器的版本是否相同?如果您将JPA jar中的所有内容都放在EJB jar中,会发生什么情况呢?

我遇到了相同的错误,但情况正好相反。我可以将EAR部署到生产环境中,也可以从WebLogic控制台进行部署,但我不能通过EclipseWebLogic插件在本地进行部署。对我有效的是在EJB项目的构建路径中更改javax.persistence_xxx.jar的版本

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

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


如果我把所有东西都放在ejb模块中,它就会工作。如果我只有两个模块xxx_EJB和xxx_WEB。但我必须隔离层,所以我又制作了两个模块,JPA用于持久性,EJBClient用于接口。