Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > NoSuchMethod:orphanRemoval. Hibernate + smartGWT


Автор: YaMolekula 26.7.2012, 09:32
Здравствуйте! Я написал код, обеспечивающий доступ к БД через 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


Из-за чего может возникать эта ошибка и есть ли какой-либо способ избавиться от этой неё?

Автор: jk1 26.7.2012, 09:35
Цитата

 Caused by: java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()


Скорее всего в этом проекте уже был Hibernate, причем другой версии. Поищите дубликаты хибовских библиотек в classpath.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)