我们在将 j2ee Ear
应用程序从 weblogic 12.1.1
迁移到 weblogic 12.2.1
时遇到问题。我们使用hibernate 5.2.10.Final
作为jpa提供者并将其打包到ear中。
Hibernate 具有 antlr 2.7.7
的隐式依赖项,因此 Ear 也包含此 jar。但 weblogic 在其类路径内部有一个 antlr 3.2
我们使其类加载器更喜欢我们耳朵的内容,即 antlr 2.7.7
,但这样 weblogic 会在某些 JMS 方法调用中抛出异常,在这些方法调用中我们对相关 id 使用 JMS 表达式过滤。因此,这样我们就失去了我们使用的应用程序服务器功能。
如果我们使用 antlr 3.2
来代替,hibernate 会出现问题吗?或者我们还有哪些其他选项可以使用这两种功能(hibernate 和 weblogic)?在 eclipselink 中我检查过,它是通过将 antlr 重新打包到某个 org.eclipselink 来解决的...是否有像这样的 hibernate 版本可用?
最佳答案
好吧,这已经很旧了,但我也遇到了类似的问题。在我们的例子中,正是“提供”的范围造成了问题。
似乎在 Hibernate 6.0 中他们将升级 antlr4。 http://hibernate.org/orm/releases/6.0/
关于java - hibernate vs weblogic antlr 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48584173/