spring+hiberante整合单元测试遇到的错误

来源:互联网 发布:铃声截取软件安卓版 编辑:程序博客网 时间:2024/06/06 19:52

http://www.zhuoda.org/lunzi/94993.html

 

1、java.lang.NoSuchMethodError: org.springframework.util.ObjectUtils.nullSafeToString(Ljava/lang/Object;)Ljava/lang/String;
spring的jar包冲突错误:
我的是用的spring2.0的jar包,应为要用工作调度所以加了一个1.2版本的spring.jar做支持,项目跑在容器下跑没事,单元测试就会出现以上错误。
参考资料:http://www.javaeye.com/post/365364


2、
support.DisposableBeanAdapter (DisposableBeanAdapter.java:148)     - Couldn't invoke destroy method of bean with name 'sessionFactory'
java.lang.IllegalStateException: Shutdown in progress
查了以下资料,也有人遇到过,找了一类似http://www.blogjava.net/allen-zhe/archive/2007/03/20/104880.html,我的解决方式,就在数据源配置那加了一个destroy-method="close"配置就可以了。
解决方法是看了http://forum.springframework.org/archive/index.php/t-19665.html这片文章想出来的。


3、org.hibernate.HibernateException: CGLIB Enhancement failed:
原因是myeclipse6.0的cglib-2.1.3.jar有bug,改为cglib-2.1.jar就可以了


4、[这个是在服务器运行时才报的,有点跑题了]还有一种比较隐蔽的错误,只要log4j属性文件设置为debug时才会报的错误代码如下:
DEBUG [main] xml.DefaultNamespaceHandlerResolver (DefaultNamespaceHandlerResolver.java:128)     - Ignoring namespace handler [org.springframework.scripting.config.LangNamespaceHandler]: handler class not found
java.lang.ClassNotFoundException: org.springframework.scripting.config.LangNamespaceHandler
找不到类的提示,在google上搜了一段时间没找到这个类在那个包里,最后一想肯定myeclipse自带的包肯定有,果然找到了,是少加载了spring-support.jar包。在myeclipse的Spring2.0 Misc Libraires库里

 

5. support.DisposableBeanAdapter (DisposableBeanAdapter.java:148)     - Couldn't invoke destroy method of bean with name 'sessionFactory'
java.lang.IllegalStateException: Shutdown in progress
错误的真正原因终于找到了,之前的解决方式是不正确的,原来是我配置二级缓存时出现的问题,po中设置了<cache usage="read-write"/>的缘故,去掉就不会有问题了,之前一直忽略这个问题了,再开发阶段最好不要配置单个类的缓存,等上线时再统一配置。

 

 

关于spring中 几个 java.lang.ClassNotFoundException异常解决方案

环境struts1.x, spring2.0, hibernate3.x
1 - org.springframework.ejb.config.JeeNamespaceHandler问题原因:工程中缺少spring的spring-remoting.jar包解决方案:在spring的开发包/dist/modules目录下找到spring-remoting.jar加入到类路径中。重新部署,启动服务,OK。
2 - org.springframework.scripting.config.LangNamespaceHandler问题原因:工程中缺少spring的spring-support.jar包解决方案:在spring的开发包/dist/modules目录下找到spring-support.jar加入到类路径中。重新部署,启动服务,OK。
3 - org.springframework.transaction.config.TxNamespaceHandler问题原因:工程中缺少spring的spring-dao.jar包解决方案:在spring的开发包/dist/modules目录下找到spring-dao.jar加入到类路径中。重新部署,启动服务,OK。
4 - org.springframework.aop.config.AopNamespaceHandler问题原因:工程中缺少spring的spring-aop.jar包解决方案:在spring的开发包/dist/modules目录下找到spring-aop.jar加入到类路径中。重新部署,启动服务,OK。
5 - org.apache.commons.dbcp.BasicDataSource问题原因:工程中缺少commons-dbcp-1.1.jar包解决方案:将commons-dbcp-1.1.jar包加入到类路径中。重新部署,启动服务,OK。
6 - org/apache/commons/pool/impl/GenericObjectPool问题原因:工程中缺少commons-pool-1.3.jar包解决方案:在http://mirrors.ibiblio.org/pub/mirrors/maven2/commons-pool/commons-pool/1.3/commons-pool-1.3.jar下载commons-pool-1.3.jar包加入到类路径中。重新部署,启动服务,OK