JBoss Hibernate库冲突

时间:2011-12-08 13:10:40

标签: hibernate jboss

在部署到JBoss时遇到问题,我遇到了问题。部署到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" />

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

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

1 个答案:

答案 0 :(得分:0)

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

    <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>