异常org.mybatis.spring.transaction.SpringManagedTransactionFactory.newTransaction

在使用mybatis-3.1.1+spring-3.2.0.M1+mybatis-spring-1.0.0进行集成时,遇到了AbstractMethodError异常。通过将mybatis-spring版本从1.0.0升级到1.1.1解决了该问题。

mybatis-3.1.1 +spring-3.2.0.M1+mybatis-spring-1.0.0 集成,应用spring test测试时产生如下错误:

java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransactionFactory.newTransaction(Ljava/sql/Connection;)Lorg/apache/ibatis/transaction/Transaction; 
at org.apache.ibatis.session.defaults.DefaultSqlSessionFactory.openSessionFromConnection(DefaultSqlSessionFactory.java:100)
at org.apache.ibatis.session.defaults.DefaultSqlSessionFactory.openSession(DefaultSqlSessionFactory.java:73) 
at org.mybatis.spring.SqlSessionUtils.getSqlSession(SqlSessionUtils.java:134) 
at org.mybatis.spring.SqlSessionTemplate¥SqlSessionInterceptor.invoke(SqlSessionTemplate.java:333) 
at ¥Proxy11.List(Unknown Source) 
at org.mybatis.spring.SqlSessionTemplate.List(SqlSessionTemplate.java:189) 
at org.apache.ibatis.binding.MapperMethod.executeForList(MapperMethod.java:114) 
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:84) 
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:40) 
at ¥Proxy12.getAllProductIndexField(Unknown Source) 
at com.babaifang.search.mapper.ProductIndexMapperTest.test(ProductIndexMapperTest.java:43) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.junit.runners.model.FrameworkMethod¥1.runReflectiveCall(FrameworkMethod.java:44) 
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) 
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) 
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) 
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72) 
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231) 
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) 
at org.junit.runners.ParentRunner¥3.run(ParentRunner.java:193) 
at org.junit.runners.ParentRunner¥1.schedule(ParentRunner.java:52) 
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) 
at org.junit.runners.ParentRunner.access¥000(ParentRunner.java:42) 
at org.junit.runners.ParentRunner¥2.evaluate(ParentRunner.java:184) 
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236) 
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174) 
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49) 
at org.eclipse.jdt.internal.junit.runner.Testution.run(Testution.java:38) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 

解决方案:

将 mybatis-spring-1.0.0.jar 替换成 mybatis-spring-1.1.1.jar

问题得到解决。

原文链接:http://flashdream8.iteye.com/blog/1560795

sqlSessionFactory.openSession(connection)报错: Caused by: org.apache.ibatis.exceptions.PersistenceException: ### Error opening session. Cause: java.lang.UnsupportedOperationException: New Spring transactions require a DataSource ### Cause: java.lang.UnsupportedOperationException: New Spring transactions require a DataSource at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) at org.apache.ibatis.session.defaults.DefaultSqlSessionFactory.openSessionFromConnection(DefaultSqlSessionFactory.java:122) at org.apache.ibatis.session.defaults.DefaultSqlSessionFactory.openSession(DefaultSqlSessionFactory.java:77) at jp.co.b_prost.bims.auto.batch.convertion.mainProcess.AlertTask.AlertTaskInasrtMain.createSqlSessionWithSharedConnection(AlertTaskInasrtMain.java:5014) ... 4 common frames omitted Caused by: java.lang.UnsupportedOperationException: New Spring transactions require a DataSource at org.mybatis.spring.transaction.SpringManagedTransactionFactory.newTransaction(SpringManagedTransactionFactory.java:47) at org.apache.ibatis.session.defaults.DefaultSqlSessionFactory.openSessionFromConnection(DefaultSqlSessionFactory.java:118) ... 6 common frames omitted 2025-09-16 16:04:13,018 55636 [main] ERROR j.c.b.b.a.b.c.c.BatchController [T:]- エラー詳細: jp.co.b_prost.bims.common.exception.BatchException: java.lang.RuntimeException: Failed to create SqlSession with shared connection at jp.co.b_prost.bims.auto.batch.convertion.mainProcess.AlertTask.AlertTaskInasrtMain.lambda$0(AlertTaskInasrtMain.java:245) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) at jp.co.b_prost.bims.auto.batch.convertion.mainProcess.AlertTask.AlertTaskInasrtMain.execute(AlertTaskInasrtMain.java:191) at jp.co.b_prost.bims.auto.batch.convertion.controller.BatchController.main(BatchController.java:259) Caused by: java.lang.RuntimeException: Failed to create SqlSession with shared connection at jp.co.b_prost.bims.auto.batch.convertion.mainProcess.AlertTask.AlertTaskInasrtMain.createSqlSessionWithSharedConnection(AlertTaskInasrtMain.java:5016) at jp.co.b_prost.bims.auto.batch.convertion.mainProcess.AlertTask.AlertTaskInasrtMain.lambda$0(AlertTaskInasrtMain.java:200) ... 3 common frames omitted
09-17
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值