【问题标题】:Jboss hibernate jar conflictJboss休眠jar冲突
【发布时间】:2013-05-23 20:12:10
【问题描述】:

我们使用 Jboss 5.1,在其中部署了几个应用程序。现在,Jboss 在其 common/libs 中有一个 hibernate jar 版本。我们的一个应用程序使用更新版本的 hibernate jars。因此,我们将依赖项 jar 打包在部署在 Jboss 中的 war 中。应用程序部署得很好,但是当我们尝试进入时,它会抛出以下异常。

我的怀疑是 Jboss 使用的是它自己的休眠 jar 版本,而不是战争中打包的版本....我如何让 Jboss 使用来自战争而不是来自其 common/lib 的休眠 jar

我更喜欢在相关应用程序中进行更改,但不是在 Jboss 中,因为有几个其他应用程序存在于同一个 Jboss 实例中,我不想通过修改 jboss/common/lib 中的 jar 来弄乱它们

SEVERE [ContainerResponse] The exception contained within MappableContainerException could not be mapped to a response, re-throwing to the HTTP container
java.lang.NoSuchFieldError: INSTANCE
    at org.hibernate.type.StandardBasicTypes.<clinit>(StandardBasicTypes.java:45)

【问题讨论】:

    标签: java hibernate jar jboss jboss5.x


    【解决方案1】:

    Java EE 类加载器是一个层次结构:

    1. 引导程序
    2. 应用服务器
    3. 应用

    由于应用服务器类加载器首先找到其 Hibernate JAR 版本,因此您的应用不走运。

    您必须告诉 JBOSS 更喜欢应用程序类加载器 JAR。谷歌的配置这样做;我不记得了。

    【讨论】:

      【解决方案2】:

      查看此链接.. http://huima.wordpress.com/2011/09/16/having-fun-with-jboss-classloader-or-how-i-figured-out-how-to-get-my-application-to-work-in-jboss-5/

      文章中还有其他链接详细解释了 JBoss 类加载,您也可以查看这些链接。 我之前的做法是在战争的WEB-INF中添加jboss-classloading.xml,内容如下

      <classloading xmlns="urn:jboss:classloading:1.0"
      name="yourapp.war"
      domain="IsolatedDomain"
      import-all="false"
      parent-first="false" >
      </classloading>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-19
        • 2013-06-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多