Spring2.5.4+Struts2.3.4.1+Hibernate3.6.0整合后在eclipse+tomcat6.0环境下运行,报错信息:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [spring-config.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.setCacheConcurrencyStrategy(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:563)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)网上很多类似帖子说是jar包冲突,试了几个也没有解决,有遇到过的高手请指点一下.谢谢!sshhibernatenestedjar包冲突

解决方案 »

  1.   

    java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.setCacheConcurrencyStrategy(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420)说的很清楚  lz查查setCacheConcurrencyStrategy()这个方法有没有错误
      

  2.   

    下面应该有个cause by 的错误提示,贴出来
      

  3.   

    楼主依赖的jar包如果都有了,还报这个错误基本就是jar包冲突了
      

  4.   

    Caused by: java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.setCacheConcurrencyStrategy(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:682)
    at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
    ... 27 more
    下面就是这些错误信息了
      

  5.   

    sessionFactory这个东西创建错误,是不是没有get方法呢?
    应该是注入失败的错误。
      

  6.   

    找到了,是个意想不到的错误,而且原理未知.
    spring配置文件的beans中属性default-autowire="byType"就会报这个错误, 改成default-autowire="byName"就好了. 有知道原理的给解释下吗?
      

  7.   

    通过byType找到的bean是不是不唯一,而通过byName是唯一的?http://springindepth.com/book/in-depth-ioc-autowiring.html
      

  8.   


    如果不是唯一我觉得应该不会出现java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.setCacheConcurrencyStrategy(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V错误,做个是找不到方法的问题
      

  9.   

    ssh jar冲突问题
    关键字: ssh jar 
    你在加的时候按这个顺序来加Struts--Spring--Hibernate,有重复包的时候不要替换就没问题了
    方法一: 
    在使用Spring的AOP编程时,会用到这几个lib: 
    asm-2.2.2.jar 
    asm-commons-2.2.2.jar 
    asm-util-2.2.2.jar Hibernate使用如果lib: 
    asm.jar 
    asm-attrs.jar 
    其中asm-2.2.2.jar与asm.jar存在类上的冲突!!! 
    使用其中之一或两者都使用,可能会出现如下错误: 
    java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor 
    java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor 
    java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit 
    解决办法是: 
    1.去掉类路径上的关于Hibernate的3个lib 
    asm.jar 
    asm-attrs.jar 
    cglib-2.1.3.jar 2.加入Spring中的以下4个lib 
    asm-2.2.2.jar 
    asm-commons-2.2.2.jar 
    asm-util-2.2.2.jar 
    cglib-nodep-2.1_3.jar 方法二: 
    在使用Spring的AOP编程时,会用到这几个lib: 
    asm-2.2.2.jar 
    asm-commons-2.2.2.jar 
    asm-util-2.2.2.jar Hibernate使用如果lib: 
    asm.jarasm-attrs.jar 
    其中asm-2.2.2.jar与asm.jar存在类上的冲突。 
    使用其中之一或两者都使用,可能会出现如下错误: java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitorjava.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitorjava.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit 下面是解决方法手工编辑你的.classpath文件,比如我这个(只有部分内容) <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_CORE"/> 
    <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_DAO"/> 
    <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_AOP"/> 
    <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_WEB"/> 
    <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.hibernate.MYECLIPSE_HIBERNATE3_1_CORE"/> 
    <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/mysql-connector-java-5.0.4-bin.jar"/> 将最后2行hibernate和mysql驱动,手工复制到springframework的lib前面。 
    <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.hibernate.MYECLIPSE_HIBERNATE3_1_CORE"/> 
    <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/mysql-connector-java-5.0.4-bin.jar"/> 
    <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_CORE"/> 
    <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_DAO"/> 
    <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_AOP"/> 
    <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_WEB"/> 现在你再试试启动,应该不会报错了。 我这里用了myeclipse的jar包。如果你是自定义用户库jar包,那么只要保证spring的jar包在hibernate之后加载,项目在部署的时候spring的jar包就会覆盖掉hibernate的jar包。
      

  10.   

    难道通过byType实例化sessionFactory的途径和通过byName是不同的?前者遇到了错误,找不到org.hibernate.cfg.Configuration的setCacheConcurrencyStrategy方法,而后者却找到了通过byName找到的是不是 不是org.hibernate.cfg.Configuration类?
    同时确认下这个类包含在哪个jar包里(一般在hibernate3.jar),是不是已经引入?见到网上一个很奇怪的例子
    http://forum.springsource.org/showthread.php?65296-Could-not-initialize-class-org-hibernate-cfg-Configuration
    找不到org.hibernate.cfg.Configuration类是由于日志类jar包未引入,不知有何关系
      

  11.   

    看样子好像是jar包的板正不兼容引起的。
      

  12.   

    spring本身的aotowired就是byType的,楼主这个肯定是jar包冲突或不兼容引起的。ssh中有很多的包是重复的楼主要把兼容的包放到一起,重复的jar包去掉。
      

  13.   

    我也遇到过这类的问题,都是因为jar包冲突,但是同时还需要注意下版本问题
      

  14.   

    需要删除一个jar包。很久以前经常删,如今已经忘了是哪个jar包了。  只要删除一个jar包就可以了
      

  15.   

    去我的资源下载我的     ssh项目   
    下好直接就可以运行了,绝对好用.
      

  16.   

    sessionFactory ?  你配置了数据源没有? 如果只是搭好框架,application.xml就把正确的数据源配置好,不然就先别配置启动看看