gpt4 book ai didi

java - 在 EAR 内的多个 EJB JAR 之间共享相同的 JPA persistence.xml

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:22:34 24 4
gpt4 key购买 nike

我们的项目有多个 EJB 模块,我们希望在它们之间共享一个 persistence.xml 文件。

我们将 persistence.xml 文件放在 EAR 的 META-INF 目录中,但持久性单元在运行时不可用。由于我们强制使用了不正确的类和 jar 文件,因此似乎从未读取过该文件,但没有任何反应。

为什么 WebLogic 不读取 EAR 中的 persistence.xml 文件?

运行代码时出现以下错误,未找到 PU(可用持久性单元:[])。

Caused By: java.lang.IllegalArgumentException: No persistence unit named 'em' is available in scope ejb1-module.jar. Available persistence units: []

持久性.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="system-unit" transaction-type="JTA">
<jta-data-source>sysmtem-ds</jta-data-source>
<jar-file>../ejb1-module.jar</jar-file>
<class>...</class>
<class>...</class>
<class>...</class>
</persistence-unit>
</persistence>

结构(持久化单元放在EAR内部)

EAR +
|- META-INF +
| - persistence.xml
|- ejb1-module.jar
|- ejb2-module.jar
|- ejb3-module.jar

我们正在使用 WebLogic 10.3.6,它使用 JPA 1.0 和随附的 TopLink/EclipseLink。

最佳答案

你应该升级到 JPA 2.0

请参阅此链接:JPA 2.0 in WebLogic Server 10.3.6

然后按照

的回答

Sharing a persistence unit across components in a .ear file

关于java - 在 EAR 内的多个 EJB JAR 之间共享相同的 JPA persistence.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30671950/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com