Здравствуйте! Я написал код, обеспечивающий доступ к БД через hibernate, в виде отдельного проекта, код в этом проекте работает нормально. Но, когда я вставил этот код в проект smartGWT, то при его использовании возникает ошибка java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z. Ошибка отлавливается в catch-блоке в следующего класса, в блоке статической инициализации Код | import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtil { final static String constConfig="hibernate.cfg.xml"; private static SessionFactory sessionFactory; public static Configuration conf; static { try { // Create the SessionFactory from hibernate.cfg.xml conf=new Configuration(); conf.addAnnotatedClass(DivHistory.class); conf.addAnnotatedClass(Division.class); conf.addAnnotatedClass(EmployeeHistory.class); conf.addAnnotatedClass(Person.class); conf.addAnnotatedClass(Post.class); sessionFactory = conf.configure(constConfig).buildSessionFactory(); } catch (Throwable ex) { // здесь ловится эта ошибка System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } } public static Configuration getConfig() { return conf; } public static SessionFactory getSessionFactory() { return sessionFactory; } }
|
Трассировка работы выглядит следующим образом: Код | 126 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final 136 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.6.10.Final 138 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found 142 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist 146 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling 228 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: hibernate.cfg.xml 228 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: hibernate.cfg.xml 309 [main] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null 388 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: com.summwork.client.DivHistory 436 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity com.summwork.client.DivHistory on table div_hisory 522 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: com.summwork.client.Division 522 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity com.summwork.client.Division on table Division Initial SessionFactory creation failed.java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z Exception in thread "main" java.lang.ExceptionInInitializerError at com.summwork.client.HibernateUtil.<clinit>(HibernateUtil.java:26) at com.summwork.client.DBManager.getAllPosts(DBManager.java:103) at com.summwork.client.DBManager.testDBManager(DBManager.java:874) at com.summwork.client.DBManager.main(DBManager.java:956) Caused by: java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.ja va:1912) at org.hibernate.cfg.AnnotationBinder.processIdPropertiesIfNotAlready(AnnotationBin der.java:796) at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:707) at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue (Configuration.java:4035) at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuratio n.java:3989) at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1398) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1856) at com.summwork.client.HibernateUtil.<clinit>(HibernateUtil.java:22) ... 3 more
|
Из-за чего может возникать эта ошибка и есть ли какой-либо способ избавиться от этой неё? Это сообщение отредактировал(а) YaMolekula - 26.7.2012, 09:33
|