Tôi đang tạo ứng dụng dành cho máy tính để bàn bằng cách sử dụng hibernate 3.5 & JPA 2.0.JPA 2.0, hibernate 3.5, jars & persistence.xml location
tôi có 2 lọ,
lib, trong đó xác định mỗi thực thể và DAO, bao bì trông như thế này:
org.my.package.models
org.my.package.models.dao
org.my.package.models.utils
Trong org.my.package.utils tôi định nghĩa lớp tiện ích ngủ đông của tôi cho nhận được EM & trường hợp EMF, có nghĩa là lib bị ràng buộc với tên Đơn vị Persistence nhưng giờ không phải là vấn đề (dù sao bạn có thể giới thiệu cho tôi cách tốt hơn để quản lý)
bình thứ hai được xây dựng như sau:
org.my.package.app
META-INF được xác định trên thư mục gốc của dự án có nghĩa là trong jar của tôi, tôi có thể tìm thấy thư mục này trực tiếp trong thư mục gốc:
META-INF/
META-INF/persistence.xml
org/
org/my/
...
org/my/package/app/Main.class
Khi tôi chạy ứng dụng, hibernate không quản lý để tìm persistence.xml nó ném một ngoại lệ một cái gì đó như "gói hoặc lớp học cho PersistenceUnitName không tìm thấy".
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
Tôi googled một chút về the problem nhưng tôi không thể có được quyền tổ chức mã nguồn.
Bất kỳ trợ giúp nào?
bạn có chắc là thông báo có nghĩa là không tìm thấy tệp, chứ không phải là sự cố trong tệp? – Bozho
Đăng ** ** ngoại lệ chính xác (và dấu vết) và persistence.xml của bạn –
http://techblog.bozho.net/?p=155 – Bozho