【问题标题】:JBoss Hibernate Library ConflictJBoss Hibernate 库冲突
【发布时间】:2011-12-08 13:10:39
【问题描述】:

我在部署到 JBoss 时遇到了访问 Oracle 数据库的问题。部署到 Tomcat 工作正常——没问题。我怀疑这个问题与 JBoss 附带的一个冲突库有关。当我尝试查询数据库(使用 Hibernate)时,我得到以下信息:

2011-12-08 08:02:53,640 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/xxxx].[xxxx]] (http-0.0.0.0-8080-9) Servlet.service() for servlet xxxx threw exception
java.lang.IllegalStateException: BaseClassLoader@50d81341{vfszip:/opt/jboss/jboss-eap-5.1/jboss-as/server/web/deploy/xxxxx.war/} classLoader is not connected to a domain (probably undeployed?) for class oracle.sql.DATE
        at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:857)
        at org.jboss.classloader.spi.base.BaseClassLoader.doLoadClass(BaseClassLoader.java:502)
        at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:447)

同样,在 Tomcat 中运行时没有这样的问题。我在我的 webroot 中设置了一个 jboss-classloading 文件,其中包含:

<classloading xmlns="urn:jboss:classloading:1.0"
    parent-first="false" domain="DefaultDomain" top-level-classloader="true"
    parent-domain="Ignored" export-all="NON_EMPTY" import-all="true" />

但这似乎没有帮助。奇怪的是,我用两种不同的休眠配置连接到两个不同的数据库,一个是 Oracle 11i,一个是 Oracle 8i。 Oracle 11 连接永远不会引发问题......它只是导致此问题的 8i 连接。 11 连接工作正常。

我不知道为什么会这样,但也许 JBoss 包含 Oracle 8 Hibernate 方言库而不是 Oracle 11 方言库?无论如何,我如何告诉 JBoss 使用我的打包库而不是在其类路径中找到的库(假设这是我的问题)?

【问题讨论】:

  • 我需要 jboss-web.xml(在 WEB-INF 中): com.talecris:archive=flint.战争 java2ParentDelegation=false
  • 这是我们在 jboss 部署中所做的,我们从 JBOSS 服务器中删除了所有的休眠 jars。在我们的例子中,我们应用程序上的休眠版本与 jboss 版本不匹配。
  • 最简单的方法是从 jboss 服务器中删除 hibernate jars 并将 jars 放在你的类路径中。否则你需要配置一个 jboss-web

标签: hibernate jboss


【解决方案1】:

我认为您的问题根本原因是hibernate-validator,如果您使用maven,我认为您应该添加hibernate-validator-legacy,您可以使用以下依赖项。

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator-legacy</artifactId>
        <version>4.0.2.GA</version>
        <exclusions>
            <exclusion>
                <artifactId>hibernate-commons-annotations</artifactId>
                <groupId>org.hibernate</groupId>
            </exclusion>
        </exclusions>
    </dependency>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-07
    • 2013-05-23
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 2017-04-03
    相关资源
    最近更新 更多