JBoss Hibernate Library Conflict - PullRequest
       0

JBoss Hibernate Library Conflict

6 голосов
/ 08 декабря 2011

У меня проблема с попаданием в базу данных Oracle при развертывании на 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 такой проблемы нет.Я установил файл загрузки классов jboss в моем webroot, который содержит это:

<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 использовать мои упакованные библиотеки, а не те, которые находятся в его пути к классам (если это моя проблема)?

1 Ответ

0 голосов
/ 02 января 2013

Я думаю, что причиной ваших проблем является 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...