【发布时间】:2012-04-30 19:04:41
【问题描述】:
环境
- WebLogic 11g(随后是 Java EE 5 和 EJB 3.0)
- 包含 JAR 的 EJB 还包含所有持久性实体。它工作得很好(有一个使用 EJB 的 Web 应用程序,它按预期工作)。我决定将实体分离到另一层,为此我创建了另一个模块并将其部署为可选包。所以现在我有两个 JAR 文件,顺便说一下,我分别部署而不是作为一个应用程序的一部分;持久性 JAR 和 EJB JAR。
问题
在部署 EJB 期间,我收到以下错误(告诉我未找到可选包):
无法部署 EJB:来自 BLayer-1.0.0-SNAPSHOT.jar 的 StocksBean:范围内没有名为“internalAppsPU”的持久性单元
BLayer-1.0.0-SNAPSHOT.jar。可用的持久性单位:[]
更多信息
持久化模块的 JAR 清单
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: bm03043
Build-Jdk: 1.6.0_18
Extension-Name: com.amir.persistence
Implementation-Version: 1.0.0
Specification-Version: 1.6
persistence.XML 在持久化模块 JAR 的 META-INF 文件夹中
<?xml version="1.0" encoding="UTF-8"?>
<persistence 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"
version="1.0">
<persistence-unit name="internalAppsPU" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>InternalAppsDS</jta-data-source>
<class>com.xx.persistence.Stock</class>
<properties>
<property name="eclipselink.logging.level" value="FINE" />
</properties>
</persistence-unit>
</persistence>
EJB 的代码
package com.xx.bll;
// bunch of imports //
@Stateless(name="StocksBean", mappedName="Internal-BLayer-StocksBean")
public class StocksBean implements Stocks {
@PersistenceContext(unitName = "internalAppsPU")
private EntityManager em;
// SNIP //
}
EJB 的 JAR 清单
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: bm03043
Build-Jdk: 1.6.0_18
Extension-List: PLayer
PLayer-Extension-Name: PersistenceLayer
PLayer-Implementation-Version: 1.0.0-SNAPSHOT
PLayer-Specification-Version: 1.6
请注意以下几点:
- 之前在 WebLogic 中配置了 InternalAppsDS 数据源。
- 在某些时候,我的印象是 Extension-List 中的名称必须与部署为可选包的 JAR 文件的名称相匹配。但是当我阅读更多时,我意识到这是不正确的。
【问题讨论】:
-
您是否尝试过使用 com.amir.persistence 作为扩展名?
-
是的。就是这样。我前一阵子解决了这个问题,然后我今天看到了你的评论。从未收到有人实际回复的通知。谢谢。那会为我节省一些时间。
标签: jpa weblogic ejb-3.0 weblogic11g persistence.xml