找不到方法:java.lang.NoSuchMethodError: com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.<init>(Lcom/mysql/jdbc/ConnectionImpl;Z)V

发布于 2021-12-05 01:07:01 字数 16590 浏览 993 评论 9

请教大家

<bean id="investors_dataSource" class="com.alibaba.druid.pool.xa.DruidXADataSource" init-method="init" destroy-method="close">

      <!-- 基本属性 url、user、password -->

      <property name="url" value="${jdbc.investors.url}" />

      <property name="username" value="${jdbc.username}" />

      <property name="password" value="${jdbc.password}" />


      <!-- 配置初始化大小、最小、最大 -->

      <property name="initialSize" value="${jdbc.initialSize}" />

      <property name="minIdle" value="${jdbc.maxIdle}" />

      <property name="maxActive" value="${jdbc.maxActive}" />


      <!-- 配置获取连接等待超时的时间 -->

      <property name="maxWait" value="${jdbc.maxWait}" />


      <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->

      <property name="timeBetweenEvictionRunsMillis" value="60000" />


      <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->

      <property name="minEvictableIdleTimeMillis" value="300000" />


      <!-- 测试有效用的SQL Query -->

      <property name="validationQuery" value="SELECT 'x'" />

      <!-- 连接空闲时测试是否有效 -->

      <property name="testWhileIdle" value="true" />

      <!-- 获取连接时测试是否有效 -->

      <property name="testOnBorrow" value="true" />

      <!-- 归还连接时是否测试有效 -->

      <property name="testOnReturn" value="true" />


      <!-- 打开PSCache,并且指定每个连接上PSCache的大小

  分库分表较多的数据库,建议配置为false -->

      <property name="poolPreparedStatements" value="false" />

      <property name="maxPoolPreparedStatementPerConnectionSize" value="20" />


      <!-- 定期把监控数据输出到日志中 -->

      <!-- <property name="timeBetweenLogStatsMillis" value="300000" /> -->


      <property name="proxyFilters">

        <list>

        <!-- 配置监控统计拦截的filters -->

            <ref bean="stat-filter" />

        </list>

      </property>

</bean>


<bean id="trans_dataSource" class="com.alibaba.druid.pool.xa.DruidXADataSource" init-method="init" destroy-method="close">

      <!-- 基本属性 url、user、password -->

      <property name="url" value="${jdbc.trans.url}" />

      <property name="username" value="${jdbc.username}" />

      <property name="password" value="${jdbc.password}" />


      <!-- 配置初始化大小、最小、最大 -->

      <property name="initialSize" value="${jdbc.initialSize}" />

      <property name="minIdle" value="${jdbc.maxIdle}" />

      <property name="maxActive" value="${jdbc.maxActive}" />


      <!-- 配置获取连接等待超时的时间 -->

      <property name="maxWait" value="${jdbc.maxWait}" />


      <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->

      <property name="timeBetweenEvictionRunsMillis" value="60000" />


      <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->

      <property name="minEvictableIdleTimeMillis" value="300000" />


      <!-- 测试有效用的SQL Query -->

      <property name="validationQuery" value="SELECT 'x'" />

      <!-- 连接空闲时测试是否有效 -->

      <property name="testWhileIdle" value="true" />

      <!-- 获取连接时测试是否有效 -->

      <property name="testOnBorrow" value="true" />

      <!-- 归还连接时是否测试有效 -->

      <property name="testOnReturn" value="true" />


      <!-- 打开PSCache,并且指定每个连接上PSCache的大小

  分库分表较多的数据库,建议配置为false -->

      <property name="poolPreparedStatements" value="false" />

      <property name="maxPoolPreparedStatementPerConnectionSize" value="20" />


      <!-- 定期把监控数据输出到日志中 -->

      <!-- <property name="timeBetweenLogStatsMillis" value="300000" /> -->


      <property name="proxyFilters">

        <list>

        <!-- 配置监控统计拦截的filters -->

            <ref bean="stat-filter" />

        </list>

      </property>

</bean>

<bean id="investorsDataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close">

        <property name="uniqueResourceName" value="investorsDS"/> 

        <property name="xaDataSource">      

            <ref bean="investors_dataSource"/>

        </property>  

</bean>

<bean id="transDataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close">

        <property name="uniqueResourceName" value="transDS"/> 

        <property name="xaDataSource">      

            <ref bean="trans_dataSource"/>

        </property>  

</bean>

<bean id="investorSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" scope="prototype">

<property name="dataSource" ref="investorsDataSource" />

<property name="plugins">

<list>

<ref bean="pageInterceptor" />

</list>

</property>

        <property name="mapperLocations" value="classpath:fmappers/user/*.xml" />

</bean>

Caused by: java.lang.NoSuchMethodError: com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.<init>(Lcom/mysql/jdbc/ConnectionImpl;Z)V

at com.alibaba.druid.util.MySqlUtils.createXAConnection(MySqlUtils.java:40)

at com.alibaba.druid.pool.xa.DruidXADataSource.createPhysicalXAConnection(DruidXADataSource.java:72)

at com.alibaba.druid.pool.xa.DruidXADataSource.getXAConnection(DruidXADataSource.java:48)

at com.atomikos.jdbc.AtomikosXAConnectionFactory.createPooledConnection(AtomikosXAConnectionFactory.java:60)

at com.atomikos.datasource.pool.ConnectionPool.createPooledConnection(ConnectionPool.java:116)

at com.atomikos.datasource.pool.ConnectionPool.addConnectionsIfMinPoolSizeNotReached(ConnectionPool.java:104)

at com.atomikos.datasource.pool.ConnectionPool.init(ConnectionPool.java:78)

at com.atomikos.datasource.pool.ConnectionPool.<init>(ConnectionPool.java:67)

at com.atomikos.jdbc.AbstractDataSourceBean.init(AbstractDataSourceBean.java:297)

at com.atomikos.jdbc.AbstractDataSourceBean.getConnection(AbstractDataSourceBean.java:339)

at com.atomikos.jdbc.AbstractDataSourceBean.getConnection(AbstractDataSourceBean.java:394)

at org.apache.ibatis.mapping.VendorDatabaseIdProvider.getDatabaseProductName(VendorDatabaseIdProvider.java:82)

at org.apache.ibatis.mapping.VendorDatabaseIdProvider.getDatabaseName(VendorDatabaseIdProvider.java:66)

at org.apache.ibatis.mapping.VendorDatabaseIdProvider.getDatabaseId(VendorDatabaseIdProvider.java:53)

at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:445)

at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:336)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1612)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1549)

... 47 more

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

坏尐絯 2021-12-06 13:40:53

 

请问下Caused by: java.lang.ClassNotFoundException: com.alibaba.druid.pool.xa.DruidXADataSource ,有这个 阿里巴巴的jar包还是说没有这个类是怎么回事呢?  druid是 1.0.16

甜扑 2021-12-06 13:40:20

驱动包冲突

哑剧 2021-12-06 13:38:17

请将mysql driver升级到最新版本5.1.36,问题解决

平定天下 2021-12-06 13:34:28

我也出现同样问题,但是把durid升级到1.0.15问题没解决

最偏执的依靠 2021-12-06 13:34:05

升级durid版本到1.0.15解决

别再吹冷风 2021-12-06 13:06:38

这个类存在

归属感 2021-12-06 12:36:11

回复
com.mysql.jdbc.jdbc2.optional.MysqlXAConnection 有init方法么?

浅沫记忆 2021-12-06 10:04:41

回复
当然没有这个方法,判断应该是jar包冲突,但是仔细检查后,不应该啊

空城仅有旧梦在 2021-12-05 07:56:49

是不是这个配置对应的java类没找到

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文