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