java - 在 transaction.commit() 之后抛出 LinkageError
问题描述
我现在正在 jboss 上处理这个古老的遗留代码,但是有一天当我们部署回一个旧的工作战争文件时,一切都变得疯狂了。即使我们恢复到另一个战争文件,它也永远不会消失(即使重新启动也没有帮助)
这是 transaction.commit 之后抛出的异常。
java.lang.LinkageError: loader constraint violation: loader (instance of org/jboss/mx/loading/UnifiedClassLoader3) previously initiated loading for a different type with name "org/hibernate/Transaction"
我不确定发生了什么,因为它之前工作得很好。我不是部署战争文件的人,所以我不知道他是否不小心弄乱了一些配置。
对于我们使用 jboss 4.2.3.ga 的版本。
我想知道从哪里开始寻找,也许只是一些线索可能出了什么问题。
解决方案
现在好了。
这是因为 /lib 中缺少 hibernate jar。
Jboss 试图用它的统一类加载器找到 jar 并得到了其他东西。
所以我们只是将 hibernate-core-3.3.0.GA.jar 添加到 lib 文件夹中,因此将使用这个 jar。
推荐阅读
- html - 内容减少/增加的多个 div 高度上的 JQuery 动态转换
- java - 如何为用户提供将我的应用程序作为默认应用程序与 android 一起使用的选项
- r - 单击栏时更新 R Shiny 中的 deckgl 地图
- python - 从评论部分检索文本?
- swift - 条件绑定的初始化程序必须具有 Optional 类型,而不是 'Bool'
- string - 使用字符串模板将数字转换为字符串是个坏主意吗?
- java - Apache POI Excel 公式输入不属于它们的@符号
- javascript - 单击时更改和切换按钮的背景颜色(来自 2/3 按钮列表) - React Native
- css - 为什么我的 CSS 全局样式表被本地样式表覆盖?
- reactjs - 为什么 this.prop 没有更新?