2011-12-08 13 views
6

Tengo un problema al llegar a Oracle DB al implementar en JBoss. Desplegar a Tomcat funciona bien - No hay problema. Sospecho que el problema está relacionado con una biblioteca conflictiva que se envía con JBoss. Cuando intento para consultar la base de datos (usando Hibernate), me sale el siguiente:JBoss Hibernate Library Conflict

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: [email protected]{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) 

Una vez más, no hay tal problema cuando se ejecuta en Tomcat. He creado un archivo jboss-carga de clases en mi Webroot la contiene esto:

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

Pero no parece ayudar. Extrañamente, me estoy conectando a dos bases de datos diferentes con dos configuraciones de hibernación diferentes, una Oracle 11i y una Oracle 8i. La conexión Oracle 11 nunca arroja un problema ... Es solo la conexión 8i la que causa este problema. La conexión 11 funciona bien.

No tengo idea de por qué sucede esto, pero tal vez JBoss contiene una lib dialecto de Oracle 8 Hibernate y no la lib dialect de Oracle 11? En cualquier caso, ¿cómo le digo a JBoss que use mis bibliotecas empaquetadas y no las que se encuentran en su classpath (suponiendo que este es mi problema)?

+0

necesito jboss-web.xml (en WEB-INF): com.talecris: Archivo = flint.war java2ParentDelegation = false MTR

+0

Esto es lo que hicimos en nuestro despliegue de JBoss, hemos eliminado todos los frascos de hibernación de JBOSS ser Ver que lo hizo. En nuestro caso, la versión hibernate de nuestra aplicación no coincidía con la versión jboss. –

+0

La forma más sencilla es eliminar los archivos hibernate del servidor jboss y colocar los archivos jar en classpath. De lo contrario, necesitaría configurar una jboss-web –

Respuesta

0

Creo que la causa raíz de sus problemas es el hibernate-validator, y creo que debería agregar hibernate-validator-legacy si está utilizando maven puede usar la siguiente dependencia.

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