java.lang.NoClassDefFoundError:来自Spring 3.1.2 / Hibernate 4.1.7的org / hibernate / engine / SessionFactoryImplementor和Shards 3.0.0.Beta2 [英] java.lang.NoClassDefFoundError: org/hibernate/engine/SessionFactoryImplementor from Spring 3.1.2/Hibernate 4.1.7 and Shards 3.0.0.Beta2

查看:116
本文介绍了java.lang.NoClassDefFoundError:来自Spring 3.1.2 / Hibernate 4.1.7的org / hibernate / engine / SessionFactoryImplementor和Shards 3.0.0.Beta2的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Hibernate Core 4.1.7和Spring 3.1.2尝试一个简单的Hibernate分片示例(是,奇数,3.0.0.Beta2是4年前发布的),并在会话工厂初始化过程中遇到此问题:

 原因:org.springframework.beans.factory.BeanCreationException:在类路径资源[shardedspring- config.xml]:bean的实例化失败;嵌套异常是org.springframework.beans.factory.BeanDefinitionStoreException:工厂方法[public org.hibernate.SessionFactory it.sella.lab.crm.sys.persistence.ShardedSessionFactoryBuilder.createSessionFactory()]抛出异常;嵌套的例外是java.lang.NoClassDefFoundError:组织/休眠/发动机/ SessionFactoryImplementor 
在org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:581)$ B $在org.springframework湾beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1015)
处org.springframework org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:911)
。 (org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean)(AbstractAutowireCapableBeanFactory.java:456)
在org.springframework。 beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.fac tory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
处org.springframework.beans org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
。在org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
(DefaultListableBeanFactory.java:609)
。在org.springframework.context。 support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
处org.springframework.context.support.ClassPathXmlApplicationContext org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:469)
。 < init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext。< init>(ClassPathXmlApplicationContext.java:83)
< clinit>(Activity.java:17)

这是我如何选择Spring和Hibernate:

 < dependency> 
< groupId> org.hibernate< / groupId>
< artifactId> hibernate-core< / artifactId>
< version> 4.1.7.Final< / version>
< /依赖关系>
< dependency>
< groupId> org.springframework< / groupId>
< artifactId> spring-core< / artifactId>
< version> 3.1.2.RELEASE< / version>
< /依赖关系>

这似乎不是碎片库的问题 - 它看起来像是由重构引起的一般问题SessionFactoryImplementor类。参照 https://jira.springsource.org/browse/SPR-8885 ,我'也已经切换到org.springframework.orm.hibernate4.HibernateTransactionManager bean for'transactionmanager' - 这并没有帮助。



现在是否有任何功能性解决方法适用于Spring 3.x和Hibernate 4.x?

解决方案

我看到您正在使用HIbernate 4。所以,看起来像春天&休眠互相兼容性问题。因此,请访问下面的网站,了解Hibernate 4与Spring的兼容性。

http://blog.springsource.org/2012/04/06/migrating-to-spring-3-1-and -hibernate-4-1 /



否则作为另一种选择尝试以下版本。

 <依赖性> 
< groupId> org.hibernate< / groupId>
< artifactId> hibernate-core< / artifactId>
< version> 3.3.1.GA< / version>
< /依赖关系>


I'm trying a simple Hibernate shard example (Yes, odd, 3.0.0.Beta2 released 4 years ago) using Hibernate Core 4.1.7 and Spring 3.1.2 and hit this issue during session factory initialization:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mySessionFactory' defined in class path resource [shardedspring-config.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public org.hibernate.SessionFactory it.sella.lab.crm.sys.persistence.ShardedSessionFactoryBuilder.createSessionFactory()] threw exception; nested exception is java.lang.NoClassDefFoundError: org/hibernate/engine/SessionFactoryImplementor
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:581)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1015)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:911)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:609)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:469)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
    at in.rixx.crm.model.Activity.<clinit>(Activity.java:17)

This is how I pick Spring and Hibernate:

<dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.1.7.Final</version>
 </dependency>
 <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.1.2.RELEASE</version>
 </dependency> 

This doesn't seem like a issue with shards library - it looks like a general issue caused by refactored SessionFactoryImplementor class. Referring to https://jira.springsource.org/browse/SPR-8885, I've also switched to org.springframework.orm.hibernate4.HibernateTransactionManager for bean 'transactionmanager' - it isn't helping.

Is there any functional workaround right now for Spring 3.x and Hibernate 4.x?

解决方案

I see that you are using HIbernate 4 with spring. So seems like spring & hibernate inter-compatibiity issue. So please visit below site for Hibernate 4 compatibility with spring.

http://blog.springsource.org/2012/04/06/migrating-to-spring-3-1-and-hibernate-4-1/

Else as another option try below version.

<dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>3.3.1.GA</version>
    </dependency>

这篇关于java.lang.NoClassDefFoundError:来自Spring 3.1.2 / Hibernate 4.1.7的org / hibernate / engine / SessionFactoryImplementor和Shards 3.0.0.Beta2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆