2011-12-26 13 views
6

Ben Spring 3.1.0.RELEASE @Configuration kullanarak Hibernate 4.0.0.FINAL entegre çalışıyorum.Bahar + Hibernate: LocalSessionFactoryBean - NoSuchMethodError: org.hibernate.cfg.annotations.reflection.XMLContext

Daha sonra bu sorun oluşur:

BeanCreationException: Error creating bean with name 'alertsSessionFactoryBean' 
NoSuchMethodError: org.hibernate.cfg.annotations.reflection.XMLContext$Default.getDelimitedIdentifier()Ljava/lang/Boolean; 

Bu ben LocalSessionFactoryBean ile ilgili bir sorun olabilir ama yanlış olduğunu anlayamıyorum düşünüyorum benim PersistenceHibernateConfig dosya

@Configuration 
@EnableTransactionManagement 
public class PersistenceHibernateConfig { 

    @Value("${jdbc.driverClassName}") 
    private String driverClassName; 

    @Value("${jdbc.url}") 
    private String url; 

    @Value("${hibernate.dialect}") 
    String hibernateDialect; 

    @Value("${hibernate.show_sql}") 
    boolean hibernateShowSql; 

    @Value("${hibernate.hbm2ddl.auto}") 
    String hibernateHbm2ddlAuto; 

    @Bean 
    public LocalSessionFactoryBean alertsSessionFactoryBean() { 
     final LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); 
     sessionFactory.setDataSource(this.restDataSource()); 
     sessionFactory.setPackagesToScan(new String[]{"com.cloudlb"}); 
     sessionFactory.setHibernateProperties(this.hibernateProperties()); 

     return sessionFactory; 
    } 

    @Bean 
    public DataSource restDataSource() { 
     final DriverManagerDataSource dataSource = new DriverManagerDataSource(); 
     dataSource.setDriverClassName(this.driverClassName); 
     dataSource.setUrl(this.url); 
     dataSource.setUsername("test"); 
     dataSource.setPassword("1234"); 

     return dataSource; 
    } 

    @Bean 
    public HibernateTransactionManager transactionManager() { 
     final HibernateTransactionManager txManager = new HibernateTransactionManager(); 
     txManager.setSessionFactory(this.alertsSessionFactoryBean().getObject()); 

     return txManager; 
    } 

    @Bean 
    public PersistenceExceptionTranslationPostProcessor exceptionTranslationPostProcessor() { 
     return new PersistenceExceptionTranslationPostProcessor(); 
    } 

    @Bean 
    public PersistenceExceptionTranslator exceptionTranslator() { 
     return new HibernateExceptionTranslator(); 
    } 

    final Properties hibernateProperties() { 
     return new Properties() { 
      { 
       this.put("persistence.dialect", PersistenceHibernateConfig.this.hibernateDialect); 
       this.put("hibernate.hbm2ddl.auto", PersistenceHibernateConfig.this.hibernateHbm2ddlAuto); 
       this.put("hibernate.show_sql", PersistenceHibernateConfig.this.hibernateShowSql); 
      } 
     }; 
    } 
} 

olduğunu. Bir şey eksik olabilirim. org.hibernate.cfg.annotations.reflection.XMLContext hibernate- içinde:

Ben çünkü 3.x neden 4.0 olarak ek açıklama bilmiyor musunuz ise hazırda-annotation.jar eksik olduğunu öğrendim çekirdek kavanoz dosyası ve hala hata.

önceden gerekli tüm bağımlılıklarını uyumlu sürümlerini sağlayarak sorunları yaşadığınız bu bir çok geliyor

+0

Eğer hazırda bekletme daha düşük bir sürümü ile bu denediniz hazırda commons-annotations.jar hazırda annotations.jar gerekmez? –

+0

Gitmek. Eğer Hazırda Bekleme 4'te düzeltilebilirse, harika olacaktır. – xyzxyz442

+0

Hazırda Bekletme 3.6.9. Başka bir hata var: Uyumsuz SınıfDeğiştirError: class org.hibernate.cfg.ExtendedMappings, org.hibernate.cfg.Mappings'i süper sınıf olarak kullanıyor – xyzxyz442

cevap

7

Tamam teşekkür ederim. Burada yanlış ne olabilir üzerinde birkaç düşünceler şunlardır:

  1. Eğer bağımlılıkları yönetmek için Maven veya benzeri kullandığınız gibi gelmiyor. Bağımlılıklarınızı yönetmek için otomatik bir araç kullanmak şiddetle tavsiye edilir, çünkü gerekli tüm bağımlılıkları el ile vermesi çok zor/hatalıdır. Bu, here'dan gerekli tüm kavanozları içeren bir zip dosyasında sürümü indirebilmeniz gerektiğini söyledi. Yaptığın bu muydu?

  2. Hazırda bekletme, hazırda bekleme-commons-annotations.jar bağlıdır. Hazırda bekletme notlarında yer alan tüm ek açıklamalar, bir süre için çekirdek kavanozda olmuştur. Yani

+0

1: Evet, yaptım. [Link] 'den indirin (http://sourceforge.net/projects/hibernate/files/hibernate4/4.0.0.Final/) 2: Ok Bu arada Maven'i kullanmadım. Bu projeyi Netbe IDE ile yürütüyorum. Sanırım IDE'nin kendisi de var. Her şeyi yeniden başlattım ve düzeltme gayet iyi çalışıyor. Teşekkür. – xyzxyz442

+0

Çok sevdiğinize sevindim. –

İlgili konular