Estoy construyendo una aplicación de escritorio usando hibernate 3.5 & JPA 2.0.JPA 2.0, hibernate 3.5, jars y persistence.xml location
tengo 2 tarros,
la lib, que define todas las entidades y DAO, los paquetes se parece a esto:
org.my.package.models
org.my.package.models.dao
org.my.package.models.utils
En org.my.package.utils he definido mi clase de utilidad de hibernación para conseguir EM & casos EMF, lo que significa la lib está ligado a un nombre de unidad de persistencia pero eso no es un problema por el momento (de todos modos me puede recomendar una mejor manera de manejar eso)
el segundo frasco se construye de la siguiente manera:
org.my.package.app
META-INF se define en la raíz del proyecto lo que significa en mi tarro puedo encontrar este directorios directamente en la raíz:
META-INF/
META-INF/persistence.xml
org/
org/my/
...
org/my/package/app/Main.class
Cuando ejecuta la aplicación, hibernate no logra encontrar persistence.xml arroja una excepción algo así como "paquete o clase para PersistenceUnitName no encontrado".
SLF4J: The requested version 1.5.11 by your slf4j binding is not compatible with [1.5.5, 1.5.6, 1.5.7, 1.5.8]
SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.
3 [main] INFO org.hibernate.cfg.annotations.Version - Hibernate Annotations 3.5.0-Final
25 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.5.0-Final
28 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
33 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
41 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
153 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final
160 [main] INFO org.hibernate.ejb.Version - Hibernate EntityManager 3.5.0-Final
Exception in thread "main" java.lang.ExceptionInInitializerError
at Main.main(Main.java:171)
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: PMMPU] class or package not found
at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1316)
at org.hibernate.ejb.Ejb3Configuration.addClassesToSessionFactory(Ejb3Configuration.java:1094)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:981)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:275)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:359)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:55)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
at dil.tal.polymarmots.utils.HibernateUtil.getEmf(HibernateUtil.java:45)
at dil.tal.polymarmots.utils.HibernateUtil.getEm(HibernateUtil.java:54)
at dil.tal.polymarmots.utils.HibernateUtil.getMotDAOImpl(HibernateUtil.java:115)
at dil.tal.polymarmots.models.Mot.<clinit>(Mot.java:30)
... 1 more
Caused by: java.lang.ClassNotFoundException: model.Extrait
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:170)
at org.hibernate.ejb.Ejb3Configuration.classForName(Ejb3Configuration.java:1232)
at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1304)
... 11 more
Busqué en Google un poco acerca de the problem pero no puedo conseguir la organización del código fuente correcta.
¿Algún ayuda?
¿Estás seguro de que el mensaje significa que no se encuentra el archivo, en lugar de un problema dentro del archivo? – Bozho
Publique la excepción ** exacta (y el rastro) y su persistence.xml –
http://techblog.bozho.net/?p=155 – Bozho