从 JBoss EAP 6.1 中排除 JPA 子系统 - 尝试在 JBoss EAP 6.1 中使用 JPA 2.1

2023-12-25

我有一个 war 应用程序,其中包含使用 Spring 容器打包和引导的 JPA 2.1 API 和 Hibernate 4.3.0.Final(JPA 2.1 实现),我想将其部署在 JBoss EAP 6.1 中。

我知道 JBoss EAP 6.1 符合 JPA 2.0 标准,因此我决定强制 JBoss 在我的应用程序中使用 JPA 版本和实现

我试图做的是使用jboss-deployment-struction.xml排除JPA子系统,但我发现即使我从standalone.xml中注释掉JPA扩展和JPA子系统并将JPA子系统排除放在jboss-deployment中 - Structure.xml(还排除了 org.hibernate 模块以使用应用程序中打包的 hibernate),不运行 JPA 扫描器(正如预期的那样)但是当任何 war 类(在我的例子中是 Spring 容器)引用 javax.persistence 类时,API 就会从 JBoss 模块(modules/system/layers/base/javax/persistence/api/main/hibernate- jpa-2.0-1.0.1.Final-redhat-2.jar!)而不是战争中提供的 API jar。很明显,我在 JBoss 提供的 API (2.0) 及其中得到了不匹配的异常 在战争应用中实现(2.1)。 一个例外是,例如,注释 javax.persistence.Table 的索引相关属性无法识别,因为这是 JPA 2.1 中的新增内容,在 JPA 2.0 中不可用

我可以通过将模块目录中的 JPA 2.0 API 替换为 JPA 2.1(并将 module.xml 指向新的 2.1 API jar)来解决此问题,并且一切正常。但是我认为这不是正确的方法,因为这就像尝试更改所有应用程序的服务器行为。

这是故意的 JBoss 类加载行为吗?所有规范 API 类(其中 JBoss 是实现者)将始终优先,无论使用什么实现,也无论我们告诉它使用应用程序内的特定 API。我认为制作一个符合特定规范的服务器然后提供 覆盖规范版本本身的方法有点矛盾,但有没有一种方法可以让我在应用程序中干净地使用 API 和实现?

另一种选择是迁移到 Wildfly,它是 JPA 2.1 实现,但我的问题是这在 JBoss EAP 6.1 中是否完全可能?


我们找到了另一个解决方案。
您还可以在 war 的 jboss-deployment-struct.xml 中排除 jpa 子系统:

<exclude-subsystems>
    <subsystem name="jpa" />
</exclude-subsystems>
<exclusions>
    <module name="javaee.api" />
</exclusions>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 JBoss EAP 6.1 中排除 JPA 子系统 - 尝试在 JBoss EAP 6.1 中使用 JPA 2.1 的相关文章

随机推荐

  • 从审计记录构建快照表

    我有一个Customer表具有以下结构 CustomerId Name Address Phone 1 Joe 123 Main NULL 我也有一个Audit跟踪更改的表Customer table Id Entity EntityId
  • 我的选择如何正确地出现在我在 SwiftUI 中创建的列表中

    我创建了显示数字数组的列表 当您选择多个数字并点击下面的按钮时 它应该告诉您所选数字的总和 但是 当您在不同行中选择相同的数字时 它们会同时被检查 我知道这应该通过使用 UUID 来解决 但我想要的最终结果是数字之和 即 Int 因此 我迷
  • 我可以从 PriorityQueue 中获取一个项目而不将其删除吗?

    我想获取队列中的下一个项目 但不想将其出列 在Python中可以吗queue PriorityQueue 来自docs http docs python org py3k library queue html highlight prior
  • Firebase 存储的动态图像大小调整

    有没有一种有效的方法可以通过更改图像 URL 中的查询参数来提供存储在 firebase 存储中的动态尺寸图像 或者类似 Imgix 的东西 什么是最有效的方法 我建议您尝试使用 ImageMagick 调整 Firebase 存储大小的
  • 将 gulp.start 函数迁移到 Gulp v4

    我已经将所有 gulp v3 代码库迁移到 v4 中 然而 我陷入了一个困境 我有 gulp start 函数 当我在 gulp v4 中运行 gulp start 时 它会抛出一个错误 这是我在版本 3 中的功能 gulp task de
  • 批处理 for 循环内存泄漏?

    我正在编写一个批处理脚本 它会遍历目录中的每个文件 查找代码文件并以某种方式修改它们 完成该任务后 我尝试在包含大约 6 000 个文件的大目录上运行它 大约 40 分钟的脚本崩溃了 我从命令提示符处收到了很多内存不足的错误 运行脚本的同时
  • 无法将“...”类型的值添加到“UIElementCollection”类型的集合或字典中

    当我通过 XAML 添加自定义控件时 出现以下错误 可能的原因是什么 A value of type cannot be added to a collection or dictionary of type UIElementCollec
  • 如何正确管理屏幕上的精灵组

    我正在用 Swift 构建我的第一个游戏 我想知道如何同时处理多个屏幕精灵 我的游戏将精灵推到屏幕上addChild连续的 所以同时有很多活跃的 我意识到我没有同时影响所有敌人的正确方法 就像我想同时影响所有敌方精灵的物理属性一样 到目前为
  • 简单银行账户的派生账户余额与存储账户余额?

    就像我们普通的银行账户一样 我们有大量的交易 导致资金流入或流出 账户余额始终可以通过简单地总结交易价值来得出 将更新后的账户余额存储在数据库中还是在需要时重新计算 哪一个更好 每个账户的预期交易量 每日 预期检索账户余额 每当交易发生时
  • 如何在 Flutter 中对 JSON 数据进行文本搜索?

    我正在开发一个应用程序 该应用程序需要从 firebase 存储中获取一些 JSON 数据 然后用户可以对其执行搜索 但是 我的搜索查询无法正常工作 并且在多次执行搜索时出现一个错误 我首先将数据上传到 firebase 存储 然后提取它
  • 无法初始化 FirebaseApp - Flutter

    我的项目突然停止正常运行 它无法初始化 FirebaseApp 我一直在使用老式的 Firebase 配置 直接从 Firebase 控制台使用 Google Services 文件 我切换到命令flutterfire configure但
  • 为什么 Git 会在没有询问我的情况下记住并使用中止的 rebase 中的冲突解决方案?

    我对我的分支做了变基foo git rebase master 做了一些冲突解决方案 然后决定我不想这样做 然后中止 git rebase abort 所有分支日志历史看起来都很正常 现在我想再次开始相同的过程 git rebase mas
  • OnClick 事件对列表视图项目重复

    我的应用程序中有一个列表视图 每个列表视图行都会在点击时展开 并且隐藏视图变得可见 但问题是隐藏视图对于列表中的许多其他项目也变得可见 我知道这种行为的原因 但不知道如何解决 这是我的适配器类 public class ScheduleTa
  • 即使没有断点,Chrome 调试器也会暂停?

    检查此站点时 即使没有设置断点 脚本也始终在调试器中暂停 并且如果暂停未暂停 它会再次自行暂停 可以做什么 https i stack imgur com J84eU png https i stack imgur com J84eU pn
  • SELECT MAX 返回错误值

    我有一个 SQL 数据库 其中有一个名为premisis 我希望选择最高的行premisisnumber 这是我正在使用的 SQL SELECT max premisisnr AS premisisnr FROM premisis 问题是
  • 真正的path.py请站起来吗?

    有一个很好的模块 path py 由贾森 奥伦多夫撰写 如果我没记错的话 曾经有过一些关于将其添加到标准库的讨论 然后就消失了 现在看来 原来的产物有多种衍生产物 到目前为止我能找到unipath http pypi python org
  • AWS Beanstalk 在部署 Nodejs 应用程序时如何使用 NPM?

    我对 AWS Beanstalk 部署的整体工作流程感到好奇 我假设它在某个时刻运行 npm 来将软件包安装在服务器上 但我只是想知道 AWS Beanstalk 是否使用最新的 npm install product 命令来安装软件包 目
  • NAT 后面的 UDP 打洞

    我正在尝试用 Java 实现 UDP Holepunching 的简单草图来测试它的概念 并稍后在我的 C C 应用程序中使用它 Concept 根据维基百科 我对这个概念的理解是这样的 假设 A 和 B 是未定义网络结构后面的客户端 C
  • Firebase Angular 4基于节点环境初始化

    我已经使用 Angular CLI 构建了 Angular 4 项目 我正在 Heroku 上部署我的应用程序 我已经为开发和生产环境创建了 heroku 管道 我有两个 Firebase 数据库开发和生产 我希望我的 Angular 2
  • 从 JBoss EAP 6.1 中排除 JPA 子系统 - 尝试在 JBoss EAP 6.1 中使用 JPA 2.1

    我有一个 war 应用程序 其中包含使用 Spring 容器打包和引导的 JPA 2 1 API 和 Hibernate 4 3 0 Final JPA 2 1 实现 我想将其部署在 JBoss EAP 6 1 中 我知道 JBoss EA