SSH整合错误求解

Augus6 2013-01-04 11:13:10
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包冲突,试了几个也没有解决,有遇到过的高手请指点一下.谢谢!
...全文
368 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
lingzhm 2015-07-09
  • 打赏
  • 举报
回复
hibernate 3.jar 换成3.5 final版本就好了
p452088203 2013-01-07
  • 打赏
  • 举报
回复
需要删除一个jar包。很久以前经常删,如今已经忘了是哪个jar包了。 只要删除一个jar包就可以了
lyc77 2013-01-07
  • 打赏
  • 举报
回复
我也遇到过这类的问题,都是因为jar包冲突,但是同时还需要注意下版本问题
接触软件不久 2013-01-07
  • 打赏
  • 举报
回复
一样没见过这样的问题
suciver 2013-01-07
  • 打赏
  • 举报
回复
spring本身的aotowired就是byType的,楼主这个肯定是jar包冲突或不兼容引起的。ssh中有很多的包是重复的楼主要把兼容的包放到一起,重复的jar包去掉。
雨中的看客 2013-01-07
  • 打赏
  • 举报
回复
看样子好像是jar包的板正不兼容引起的。
dracularking 2013-01-07
  • 打赏
  • 举报
回复
引用 16 楼 yzsunlight 的回复:
引用 15 楼 dracularking 的回复: 引用 12 楼 Augus6 的回复: 引用 11 楼 freeman527 的回复:sessionFactory这个东西创建错误,是不是没有get方法呢? 应该是注入失败的错误。 找到了,是个意想不到的错误,而且原理未知. spring配置文件的beans中属性default-autowire="byType"就会报这个错误, 改成d……
难道通过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包未引入,不知有何关系
熊猫大虾 2013-01-07
  • 打赏
  • 举报
回复
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包。
yzsunlight 2013-01-07
  • 打赏
  • 举报
回复
引用 15 楼 dracularking 的回复:
引用 12 楼 Augus6 的回复: 引用 11 楼 freeman527 的回复:sessionFactory这个东西创建错误,是不是没有get方法呢? 应该是注入失败的错误。 找到了,是个意想不到的错误,而且原理未知. spring配置文件的beans中属性default-autowire="byType"就会报这个错误, 改成default-autowire="byName"就好了……
如果不是唯一我觉得应该不会出现

java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.setCacheConcurrencyStrategy(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
错误,做个是找不到方法的问题
aliuges 2013-01-07
  • 打赏
  • 举报
回复
sessionFactory ? 你配置了数据源没有? 如果只是搭好框架,application.xml就把正确的数据源配置好,不然就先别配置启动看看
ie0ie0ie 2013-01-07
  • 打赏
  • 举报
回复
去我的资源下载我的 ssh项目 下好直接就可以运行了,绝对好用.
su_tata 2013-01-07
  • 打赏
  • 举报
回复
spring jar包的错吧好像
dracularking 2013-01-06
  • 打赏
  • 举报
回复
引用 12 楼 Augus6 的回复:
引用 11 楼 freeman527 的回复:sessionFactory这个东西创建错误,是不是没有get方法呢? 应该是注入失败的错误。 找到了,是个意想不到的错误,而且原理未知. spring配置文件的beans中属性default-autowire="byType"就会报这个错误, 改成default-autowire="byName"就好了. 有知道原理的……
通过byType找到的bean是不是不唯一,而通过byName是唯一的? http://springindepth.com/book/in-depth-ioc-autowiring.html
Augus6 2013-01-06
  • 打赏
  • 举报
回复
引用 5 楼 suciver 的回复:
楼主依赖的jar包如果都有了,还报这个错误基本就是jar包冲突了
看我12楼的回复.
Augus6 2013-01-06
  • 打赏
  • 举报
回复
引用 10 楼 WarOfTheKing 的回复:
似乎是导入的 a字母开头的一个包的冲突,把你的包贴出来看看
看我12楼的回复.
Augus6 2013-01-06
  • 打赏
  • 举报
回复
引用 11 楼 freeman527 的回复:
sessionFactory这个东西创建错误,是不是没有get方法呢? 应该是注入失败的错误。
找到了,是个意想不到的错误,而且原理未知. spring配置文件的beans中属性default-autowire="byType"就会报这个错误, 改成default-autowire="byName"就好了. 有知道原理的给解释下吗?
JavaMan 2013-01-05
  • 打赏
  • 举报
回复
sessionFactory这个东西创建错误,是不是没有get方法呢? 应该是注入失败的错误。
WarOfTheKing 2013-01-05
  • 打赏
  • 举报
回复
似乎是导入的 a字母开头的一个包的冲突,把你的包贴出来看看
Jucbt 2013-01-05
  • 打赏
  • 举报
回复
没见过这种错误。。
suciver 2013-01-05
  • 打赏
  • 举报
回复
楼主依赖的jar包如果都有了,还报这个错误基本就是jar包冲突了
加载更多回复(7)

81,087

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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