`
markon
  • 浏览: 1592 次
  • 性别: Icon_minigender_1
  • 来自: 贵州
社区版块
存档分类
最新评论

使用atomikos时出现 JDBC4PreparedStatementWrapper.close异常

阅读更多
  最近在做一个项目,使用atomikos做分布式时,我的mysql驱动类时出现
   2014-07-09 10:04:57.421::WARN:  Nested in org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error updating database.  Cause: java.lang.IllegalArgumentException: null source
### The error may involve cn.gome.interfaces.platform.app.base.client.UserMapper.insert-Inline
### The error occurred while setting parameters
### SQL: insert into user (id, name)     values (?, ?)
### Cause: java.lang.IllegalArgumentException: null source:
java.lang.IllegalArgumentException: null source
at java.util.EventObject.<init>(EventObject.java:38)
at javax.sql.StatementEvent.<init>(StatementEvent.java:39)
at com.mysql.jdbc.jdbc2.optional.JDBC4PreparedStatementWrapper.close(JDBC4PreparedStatementWrapper.java:70)
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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:83)
at $Proxy32.close(Unknown Source)
at org.apache.ibatis.executor.BaseExecutor.closeStatement(BaseExecutor.java:231)
at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:47)
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:100)
at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:75)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:148)
at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:137)
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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:358)
at $Proxy18.insert(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:240)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:46)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:43)
at $Proxy25.insert(Unknown Source)
at cn.gome.interfaces.platform.app.base.action.BeanAction.test(BeanAction.java:150)
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.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)

   
     开始以为是配置出错,后来经过多方面排查发现是mysql的mysql-connector-java-5.1.6.jar有bug,升级以后这个问题即可解决
分享到:
评论

相关推荐

    atomikos-transactions-jdbc.jar.zip

    UserTransaction utx = com.atomikos.icatch.jta.UserTransactionImp.getInstance(); utx.begin(); // 执行数据库操作 utx.commit(); ``` 这段代码将开始一个新的事务,之后的数据库操作都将在这个事务的上...

    spring+mybatis+atomikos配置文件及相关包.rar

    Spring会自动识别并启动事务,如果出现异常则回滚,正常结束则提交。 - 配置事务管理器,让Spring知道使用Atomikos提供的事务管理器来处理事务。 6. **测试与调试** - 编写测试用例,确保在分布式事务中,多个...

    atomikos-util-3.7.0.jar.zip

    1. **分布式事务管理**:Atomikos提供了一种机制,可以在多个数据库或服务之间创建和管理事务,确保ACID(原子性、一致性、隔离性、持久性)属性得到满足,即使在系统故障时也能正确回滚或提交事务。 2. **JTA接口...

    atomikos-transactions-hibernate3.jar.zip

    在使用Atomikos Transactions Hibernate3.jar时,开发者需要在Hibernate配置中指定Atomikos作为事务管理器,并配置相应的属性,例如事务超时时间、数据源等。这通常在`hibernate.cfg.xml`文件中完成。一旦配置完毕,...

    atomikos-transactions-api.jar.zip

    Atomikos Transactions API 是一个广泛使用的开源事务处理API,它为Java应用程序提供了分布式事务管理的能力。这个名为"atomikos-transactions-api.jar.zip"的压缩包包含了一个名为"atomikos-transactions-api.jar...

    atomikos_3.7_jta项目整合jar包

    这通常涉及到设置系统属性,比如`com.atomikos.icatch.log_base_dir`来指定日志目录,以及`com.atomikos.icatch.system_properties`来启用事务服务。 此外,还需要在应用服务器或者Spring等框架的配置文件中配置...

    atomikos-util-3.7.0-sources.jar.zip

    同时,由于这是一个依赖包,所以在实际项目中使用Atomikos的工具模块时,还需要正确配置项目的构建路径,确保该源码包能够被编译并链接到项目的类路径中。 总的来说,"atomikos-util-3.7.0-sources.jar.zip" 提供了...

    Spring Boot + Druid + Mybatis + Atomikos 配置多数据源 并支持分布式事务

    在构建企业级应用程序时,处理多个数据库和确保跨数据库操作的事务一致性是常见的需求。本教程将探讨如何利用Spring Boot、Druid、Mybatis以及Atomikos来配置多数据源并实现分布式事务。 首先,Spring Boot是Java...

    atomikos-util.jar.zip

    4. **异常处理**:在事务处理中,异常处理是非常关键的。Atomikos提供了一套完整的异常体系,帮助开发者处理事务失败情况。 5. **日志和跟踪**:为了调试和监控,Util.jar可能包括日志记录和事务跟踪功能,使得...

    atomikos-transactions-jms.jar.zip

    这个库被封装在名为"atomikos-transactions-jms.jar"的JAR文件中,通常作为开发人员在构建支持分布式事务的应用程序时的一个依赖组件。 在Java应用程序中,特别是那些需要跨多个数据源进行操作的系统,分布式事务...

    java+spring+mybatis+mysql+RuoYi-atomikos-实现分布式事务.zip

    1. **Java**: Java是整个项目的基础,作为广泛使用的面向对象编程语言,Java提供了丰富的库和工具支持,使得开发分布式系统变得可能。 2. **Spring**: Spring是Java领域的一个重量级框架,它的核心功能包括依赖注入...

    atomikos-transactions-jdbc.jar

    官方版本,亲测可用

    atomikos-transactions-jta.jar.zip

    在使用Atomikos Transactions JTA时,开发者需要注意以下几点: 1. **配置**:正确配置Atomikos是关键,需要定义事务管理器的属性,如事务超时时间、日志存储位置等。 2. **资源注册**:在应用程序启动时,需要将...

    transactions-jdbc-4.0.4.jar

    JAVA分布式事务atomikos atomikos jar 包 transactions-jdbc-4.0.4.jar

    atomikos-transactions-hibernate3.jar

    官方版本,亲测可用

    spring4+atomikos实现分布式事务

    这个注解会告诉Spring在执行该方法时启动一个新的事务,如果出现异常则回滚,否则提交事务。对于跨数据库的场景,Atomikos会自动处理这些事务边界,确保所有操作要么全部成功,要么全部失败。 ```java @Service ...

    atomikos依赖jar包.zip

    包含jar包如下 atomikos-util-3.9.3.jar transactions-3.9.3.jar transactions-api-3.9.3.jar transactions-jdbc-3.9.3.jar transactions-jta-3.9.3.jar

    使用Spring+atomikos实现分布式事务

    &lt;bean id="dataSourceA" class="com.atomikos.jdbc.AtomikosDataSourceBean"&gt; &lt;!-- 配置数据源A --&gt; &lt;bean id="dataSourceB" class="com.atomikos.jdbc.AtomikosDataSourceBean"&gt; &lt;!-- 配置数据源B --&gt; ...

    atomikos-util-3.6.4.jar.zip

    《Atomikos Util 3.6.4:分布式事务处理的关键组件》 Atomikos是一个开源的Java事务处理服务提供商,其Util库是其核心组件之一。Atomikos Util 3.6.4.jar是我们讨论的重点,这个版本的库文件在Java开发中扮演着重要...

    Atomikos分布式事务处理所需jar包

    2. **配置事务管理器**:创建一个Atomikos的配置文件,例如`atomikos.properties`,设置事务管理器的属性,如最大并发事务数、日志存储位置等。 3. **初始化事务管理器**:在应用启动时,通过代码或配置文件初始化...

Global site tag (gtag.js) - Google Analytics