spring和orm一起用,报错,请高人指点一下,是什么地方出错了?

princesshan 2011-11-29 02:08:38
applicationContext.xml中相关的配置如下:

<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
destroy-method="destroy">
<property name="dataSource" ref="dataSource"/>
<property name="annotatedPackages" value="classpath:/com/test/spring/hibernate/bean/"/>
<property name="annotatedClasses">
<list>
<value>com.test.spring.hibernate.bean.Catbean</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
</props>
</property>
</bean>
<bean id="catDao"
class="com.test.spring.hibernate.bean.CatBeanDaoImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean>



TestSpringOrmRun.java代码如下:

public class TestSpringOrmRun {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
@SuppressWarnings("deprecation")
XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));

ICatDao catDao = (ICatDao)factory.getBean("catDao");
Catbean catbean = new Catbean();
catbean.setName("Hello Kitty");
catbean.setCreateDate(new Date());
catDao.createCat(catbean);

List<Catbean> catList = catDao.listCats();
for(Catbean c : catList)
{
System.out.println("Name:" + c.getName());
}

}

}

上面的代码没有编译错误。上面的代码运行报下面的错误,请问什么原因?


Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'catDao' defined in class path resource [applicationContext.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/cache/CacheProvider
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1350)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1111)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:520)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:459)
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 com.test.spring.hibernate.test.TestSpringOrmRun.main(TestSpringOrmRun.java:22)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/cache/CacheProvider
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:530)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:459)
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.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
... 10 more
Caused by: java.lang.NoClassDefFoundError: org/hibernate/cache/CacheProvider
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.privateGetPublicMethods(Unknown Source)
at java.lang.Class.getMethods(Unknown Source)
at java.beans.Introspector.getPublicDeclaredMethods(Unknown Source)
at java.beans.Introspector.getTargetMethodInfo(Unknown Source)
at java.beans.Introspector.getBeanInfo(Unknown Source)
at java.beans.Introspector.getBeanInfo(Unknown Source)
at java.beans.Introspector.getBeanInfo(Unknown Source)
at java.beans.Introspector.<init>(Unknown Source)
at java.beans.Introspector.getBeanInfo(Unknown Source)
at org.springframework.beans.CachedIntrospectionResults.<init>(CachedIntrospectionResults.java:224)
at org.springframework.beans.CachedIntrospectionResults.forClass(CachedIntrospectionResults.java:149)
at org.springframework.beans.BeanWrapperImpl.getCachedIntrospectionResults(BeanWrapperImpl.java:324)
at org.springframework.beans.BeanWrapperImpl.getPropertyDescriptorInternal(BeanWrapperImpl.java:354)
at org.springframework.beans.BeanWrapperImpl.isWritableProperty(BeanWrapperImpl.java:430)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1352)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1111)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:520)
... 16 more
Caused by: java.lang.ClassNotFoundException: org.hibernate.cache.CacheProvider
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 35 more
...全文
464 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
vinegardou 2012-08-14
  • 打赏
  • 举报
回复
spring 和hibernate版本的冲突问题。
也算懂一点 2012-06-25
  • 打赏
  • 举报
回复
你用的是hibernate 哪个版本? 3 的版本已经不建议使用org.hibernate.cache.CacheProvider这个类了
如果你用的是hibernate4 那么你修改class="org.springframework.orm.hibernate4.annotation.AnnotationSessionFactoryBean"
试试
princesshan 2011-11-30
  • 打赏
  • 举报
回复
我的hibernate就是从官网下的,spring也是从官网下的啊。
哪位能够告诉我一个解决办法啊。
游一游走一走 2011-11-30
  • 打赏
  • 举报
回复
org.hibernate.cache.CacheProvider
缺少这个类,这个类属于hibernate包,你检查下,你放的所有hibernate包有无这个类,没有就去找下,hibernate的包最好去官网下个全的
princesshan 2011-11-30
  • 打赏
  • 举报
回复
谁能告诉我缺什么东西,spring单独用也没有问题,就是spring+orm就出错了。
litiebiao2012 2011-11-29
  • 打赏
  • 举报
回复
少jar

哥们用maven就不会存在这些问题了
princesshan 2011-11-29
  • 打赏
  • 举报
回复
上图是我用的所有的jar包,请高手看看是什么问题。
princesshan 2011-11-29
  • 打赏
  • 举报
回复
princesshan 2011-11-29
  • 打赏
  • 举报
回复
单独使用hibernate没有问题。应该不是缺少hibernate的jar包,是不是缺其他的jar我不清楚。
happyking999 2011-11-29
  • 打赏
  • 举报
回复
是不是缺少hibernate3.jar这个包
xinlan1022 2011-11-29
  • 打赏
  • 举报
回复
java.lang.ClassNotFoundException: org.hibernate.cache.CacheProvider缺jar

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧