Spring整合iBatis之一:整合中遇到的异常总结



    刚刚用了两个多小时,把之前写的spring代码和iBatis代码整合到了一块儿,各种包的导入和各种依赖关系比较头疼,要修改不少东西,也出了不少错误。

    先说说整合时候遇到的异常,代码还要再整理整理加加注释什么的,再一段一段慢慢分析,结构大概是这样(少某个包的同学可以看看包名):

    


    


先把异常晒出来,其中好几个异常查了好半天,希望贴出来能造福全人类 哈哈:


1.dataSource(数据源bean)配置错误:

spring没有使用合适的类,

配置dataSource时,class="org.apache.commons.dbcp.BasicDataSource"就行了


2.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool

加commons包

MyEclipse10的安装目录下搜索:commons-pool.jar,commons-logging.jar,commons-dbcp.jar这三个包,找好了导入进去

(其实还少个commons-collections-3.0.jar,后边出这个错了)



3.NoClassDefFoundError: com/ibatis/common/xml/NodeletException

加ibatis-sqlmap包

MyEclipse10的安装目录下搜ibatis-sqlmap-2.jar



4.NoSuchMethodError: com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(Ljava/io/InputStream;Ljava/util/Properties;)Lcom/ibatis/sqlmap/client/SqlMapClient;

重新导入ibatis.jar,

后来我改用ibatis-2.3.4.726.zip,这个版本就没问题了


5.XML-parse错误:

配置路径没改过来,

原来iBatis里没有model层,对应的vo层改过来以后,每一个配置文件都要改,

疏忽少改了一个,xml里又给不出提示


6.NotWritablePropertyException: Invalid property 'StudentService' of bean class [com.rt.sidemo.service.StudentService]: Bean property 'StudentService' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?

增加完属性没有配套的setter

spring配置文件applicationContext-common.xml通过反射,把注入了dataSource的iBatis配置实例注入dao,最后将上述实例注入service,都靠setter方法



7.不能使用namespace :

ibatis的SqlMapConfig.xml里加namespace=true,启用命名空间

最后ibatis配置文件SqlMapConfig.xml,只有命名空间的配置 以及 各个model和表对应的xml



8.NoClassDefFoundError: org/apache/commons/collections/CursorableLinkedList:

导入 commons-collections.jar

MyEclipse安装目录下搜一个






用aop事务处理后的报错:
1.java.lang.ClassNotFoundException: org.aopalliance.intercept.MethodInterceptor

加包aopalliance.jar


2.java.lang.ClassNotFoundException: org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWorldException

加包:aspectjlib.jar、aspectjrt.jar、aspectjweaver.jar


3.org.springframework.aop.framework.AopConfigException: Cannot proxy target class because CGLIB2 is not available. Add CGLIB to the class path or specify proxy interfaces.

加包:cglib.jar


包都去MyEclipse安装目录下搜就行了,一般都会搜出十来个,优先找路径里有spring3.0或是spring2.5的









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值