lunes, 23 de abril de 2012

Problema con Hibernate y Weblogic y su classloader

Al utilizar weblogic con un proyecto que contiene hibernate y que es operativo en otros servidores, se me ha dado el siguiente fallo:
org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken
Lo que en un principio parece que es falta de una librería, se trata en realidad de un conflicto de librerías entre las propias del weblogic y las del proyecto. La aplicación utiliza una librería del servidor que es más antigua que la necesaria por Hibernate y de ahí el fallo.

Para solucionarlo he encontrado por la web varias formas de resolver el conflicto, aquí dejo las más interesantes y menos intrusivas.

1. Indicar a Hiberante que haga uso de otra clase para la función que falla. Para ello es necesario modificar el fichero de configuración, en mi caso persistence.xml y añadir la siguiente propiedad:

2. Indicar al servidor que primero cargue las librerías de la aplicación. Para ello es necesario modificar el fichero de configuración del servidor weblogic añadiendo la siguiente propiedad:

  
    true
  

1 comentario:

  1. el mismo problema tengo yo, pero con el framework Spring..el weblogic no reconoce la existencia de las librerias que de hecho estan alli

    ResponderEliminar