Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con Hibernate, no encuentra hibernate.cfg.xml

Estas en el tema de Problema con Hibernate, no encuentra hibernate.cfg.xml en el foro de Java en Foros del Web. Hola, me he visto obligado a usar Hibernate para soportar concurrencia en mi aplicación web y el problema que tengo es que una vez está ...
  #1 (permalink)  
Antiguo 10/02/2011, 19:12
 
Fecha de Ingreso: febrero-2011
Ubicación: España
Mensajes: 51
Antigüedad: 13 años, 9 meses
Puntos: 1
Problema con Hibernate, no encuentra hibernate.cfg.xml

Hola, me he visto obligado a usar Hibernate para soportar concurrencia en mi aplicación web y el problema que tengo es que una vez está todo configurado perfectamente según los tutoriales disponibles en Internet, al ejecutar no encuentra el fichero hibernate.cfg.xml.

He probado de todas las maneras posibles (con el path completo, sin él, etc.), y también he buscado bastante en Google, pero no funciona nada. El fichero lo he colgado de varios sitios, el raíz, src, java, struts... en ninguna parte lo coge.

Alguna idea?

La pila de errores es la siguiente:


Código Apache:
Ver original
  1. excepción
  2.  
  3. javax.servlet.ServletException: La ejecución del Servlet lanzó una excepción
  4.  
  5. causa raíz
  6.  
  7. java.lang.ExceptionInInitializerError
  8.     packageHibernate.HibernateUtil.<clinit>(HibernateUtil.java:32)
  9.     com.myapp.struts.ConsultarDatosUsuarioActionDAO.consultarDatosUsuario(ConsultarDatosUsuarioActionDAO.java:84)
  10.     com.myapp.struts.ConsultarDatosUsuarioAction.execute(ConsultarDatosUsuarioAction.java:60)
  11.     org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
  12.     org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
  13.     org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
  14.     org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
  15.     javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
  16.     javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
  17.  
  18. causa raíz
  19.  
  20. org.hibernate.HibernateException: could not find file: hibernate.cfg.xml
  21.     org.hibernate.cfg.Configuration.configure(Configuration.java:1465)
  22.     packageHibernate.HibernateUtil.<clinit>(HibernateUtil.java:27)
  23.     com.myapp.struts.ConsultarDatosUsuarioActionDAO.consultarDatosUsuario(ConsultarDatosUsuarioActionDAO.java:84)
  24.     com.myapp.struts.ConsultarDatosUsuarioAction.execute(ConsultarDatosUsuarioAction.java:60)
  25.     org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
  26.     org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
  27.     org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
  28.     org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
  29.     javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
  30.     javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
  31.  
  32. causa raíz
  33.  
  34. java.io.FileNotFoundException: hibernate.cfg.xml (El sistema no puede encontrar el archivo especificado)
  35.     java.io.FileInputStream.open(Native Method)
  36.     java.io.FileInputStream.<init>(FileInputStream.java:106)
  37.     org.hibernate.cfg.Configuration.configure(Configuration.java:1462)
  38.     packageHibernate.HibernateUtil.<clinit>(HibernateUtil.java:27)
  39.     com.myapp.struts.ConsultarDatosUsuarioActionDAO.consultarDatosUsuario(ConsultarDatosUsuarioActionDAO.java:84)
  40.     com.myapp.struts.ConsultarDatosUsuarioAction.execute(ConsultarDatosUsuarioAction.java:60)
  41.     org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
  42.     org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
  43.     org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
  44.     org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
  45.     javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
  46.     javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

Gracias!
  #2 (permalink)  
Antiguo 11/02/2011, 02:10
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Problema con Hibernate, no encuentra hibernate.cfg.xml

Lo más posible es que tenga que estar en algún sitio del classpath. Una vez desplegado el war de tu aplicación, el fichero posiblemente deba ubicarse en WEB-INF/classes/hibernate.cfg.xml o cualquier otro directorio que esté en el classpath.

Si lo está buscando como fichero normal y no en el classpath, lo del path completo debería funcionar. Si no, hay que ponerlo en el directorio de ejecución de tu contenedor de aplicaciones. Por ejemplo, si es tomcat, deberías ubicar el fichero en <catalina_home>/bin

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 11/02/2011, 04:18
 
Fecha de Ingreso: febrero-2011
Ubicación: España
Mensajes: 51
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Problema con Hibernate, no encuentra hibernate.cfg.xml

Cita:
Iniciado por chuidiang Ver Mensaje
Lo más posible es que tenga que estar en algún sitio del classpath. Una vez desplegado el war de tu aplicación, el fichero posiblemente deba ubicarse en WEB-INF/classes/hibernate.cfg.xml o cualquier otro directorio que esté en el classpath.

Si lo está buscando como fichero normal y no en el classpath, lo del path completo debería funcionar. Si no, hay que ponerlo en el directorio de ejecución de tu contenedor de aplicaciones. Por ejemplo, si es tomcat, deberías ubicar el fichero en <catalina_home>/bin

Se bueno.
Hola chuidiang, aun no he desplegado la aplicación, ni mucho menos. Estoy con el desarrollo en NetBeans, y no encuentro la forma de que lo coja.

He probado a colgarlo del raiz del proyecto y también de src, y no funciona de ninguna de las dos maneras. También lo he colocado en la carpeta de las clases, donde están los mappings, y tampoco.

sessionFactory = new Configuration().configure(new File("hibernate.cfg.xml"))

sessionFactory = new Configuration().configure(new File("/src/hibernate.cfg.xml"))

Un saludo.
  #4 (permalink)  
Antiguo 11/02/2011, 05:15
 
Fecha de Ingreso: febrero-2011
Ubicación: España
Mensajes: 51
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Problema con Hibernate, no encuentra hibernate.cfg.xml

Por lo que veo es un problema bastante común pero en casi ninguna parte está la solución correcta. En este foro, por ejemplo, hablan finalmente de colocarlo en /src/java, pero ya he probado ahí y tampoco funciona.

Cita:
Thanks for the reply, Mark!

I just wanted to tell you that I solved it. The directory structure of the module where I keep the rest of my Hibernate files had a /src/java directory and that's where the cfg.xml file needed to be to make it work. (I still don't know where in NetBeans it is set that the config. file had to be right there but I have a shortage of time so I'd better just move on now.)

Thanks and have a nice day!
http://www.coderanch.com/t/218962/ORM/java/Hard-configurate-Hibernate-NetBeans

Un saludo.
  #5 (permalink)  
Antiguo 11/02/2011, 06:36
Avatar de francopai  
Fecha de Ingreso: agosto-2008
Mensajes: 42
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Problema con Hibernate, no encuentra hibernate.cfg.xml

Buena, mira, yo lo tengo asi simplemente: sessionFactory = new Configuration().configure("/package1/package2/hibernate/hibernate.cfg.xml").buildSessionFactory();
No entiendo para que esta ese new File ahi, pero bueno, asi como te digo a mi me funciona bien.

Espero te sea de ayuda.
Saludos
  #6 (permalink)  
Antiguo 11/02/2011, 06:55
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Problema con Hibernate, no encuentra hibernate.cfg.xml

Supongo que la diferencia entre poner File o no ponerlo es que lo busque en el classpath o en el sistema de ficheros normal.

Si pones FILE, el path absoluto empezaría por c:\... o algo así, no en src.
Si no pones FILE, el classpath empezaría donde estén tus clases java, no sé si netbeans las deja en el mismo src o las pone aparte. Supongo que es el caso de fancopai (no pone src en el path, sino directamente el primer nombre de paquete). El fichero debería estar ahí, junto con las clases, no en un directorio separado.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 11/02/2011, 09:52
 
Fecha de Ingreso: febrero-2011
Ubicación: España
Mensajes: 51
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Problema con Hibernate, no encuentra hibernate.cfg.xml

Efectivamente como comenta francopai, quitando el File funciona, al menos reconoce el hibernate.cfg.xml... Gracias a ambos.

El problema es que ahora no parsea el primer y de momento único xml que tengo, dando una excepción org.hibernate.InvalidMappingException: Could not parse mapping document from resource persona.hbm.xml.

El código xml es el que sigue:

Código XML:
Ver original
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  3. <hibernate-mapping>
  4.   <class name="com.myapp.struts.ConsultarDatosDAOHibernate" table="persona"/>
  5.   <id name="id" column="id" type="java.lang.Long">
  6.     <generator class="native"/>
  7.   </id>
  8.   <property name="nombre" column="nombre" type="java.lang.String"/>
  9.   <property name="apellido1" column="apellido1" type="java.lang.String"/>
  10.   <property name="apellido2" column="apellido2" type="java.lang.String"/>
  11.   <property name="correo" column="email" type="java.lang.String"/>
  12.   <property name="usuario" column="username" type="java.lang.String"/>
  13.   <property name="telefono" column="telefono" type="java.lang.String"/>
  14.   <property name="password" column="password" type="java.lang.String"/>
  15.   <property name="rol"/>
  16. </hibernate-mapping>

Alguna idea?
  #8 (permalink)  
Antiguo 11/02/2011, 10:56
 
Fecha de Ingreso: febrero-2011
Ubicación: España
Mensajes: 51
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Problema con Hibernate, no encuentra hibernate.cfg.xml

Vale, ya tengo la solución. Es por esta línea:

Código XML:
Ver original
  1. <class name="com.myapp.struts.ConsultarDatosDAOHibernate" table="persona"/>

Está cerrada y debe cerrarse con
Código XML:
Ver original
  1. </class>
más abajo, justo antes del cierre del mapping.

Gracias!

Etiquetas: encuentra, hibernate
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:40.