Wildfly 10无法在启动时加载MySQL XA驱动程序

我有一个我在wildfly-10.0.0中部署的Web应用程序。 它需要一个mysql xa驱动程序。 我有以下错误:

2015-10-13 12:25:37,979 ERROR [org.jboss.as.controller.management-operation](ServerService线程池 – 33)WFLYCTL0013:操作(“添加”)失败 – 地址:([(“子系统”) >“datasources”),(“jdbc-driver”=>“com.mysql”)]) – 失败描述:“WFLYJCA0041:无法为驱动程序[com.mysql]加载模块”

modules目录如下:

Directory of C:\Users\rball\Documents\Dev\WildFly\wildfly-10.0.0.CR1\modules\sy stem\layers\base\com\mysql\main 10/13/2015 11:32 AM  . 10/13/2015 11:32 AM  .. 10/13/2015 12:25 PM 1,575 module.xml 03/17/2015 05:21 AM 968,670 mysql-connector-java-5.1.35-bin.jar 

module.xml文件是:

            

我将驱动程序和数据源添加到standalone.xml的datasources部分:

   jdbc:mysql://localhost:3306/temp?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8  com.mysql.jdbc.jdbc2.optional.MysqlXADataSource com.mysql  10 20 false false false false   root password   false false 1000   0 false     com.mysql.jdbc.Driver com.mysql.jdbc.jdbc2.optional.MysqlXADataSource   

你得到的错误意味着wildfly需要一个名为com.mysql的模块,但它不存在或者没有在该名称下注册。

您缺少一步,即注册数据源jdbc驱动程序。 第一步当然是在WILDFLY_HOME\modules\system\layers\base\com\mysql\main中添加mysql-connector-java-5.1.35-bin.jar文件和module.xml文件。

要摆脱错误,请停止wildfly,删除这些行,删除standalone.xml中的驱动程序声明; 我们将让/ subsystem命令创建此条目。

  com.mysql.jdbc.Driver com.mysql.jdbc.jdbc2.optional.MysqlXADataSource  

打开命令提示符并导航到WILDFLY_HOME\bin\并运行以下命令。

  1. 运行: jboss-cli.bat --connect连接到jboss cli。 如果您的管理控制台在不同的端口上运行,例如localhost:9991,请使用jboss-cli.bat --connect --controller=127.0.0.1:9991

  2. 然后使用以下命令注册jdbc-driver

    /subsystem=datasources/jdbc-driver=com.mysql:add(driver-name=com.mysql,driver-module-name=com.mysql,driver-xa-datasource-class-name=com.mysql.jdbc.jdbc2.optional.MysqlXADataSource)

如果成功,您应该得到响应{"outcome" => "success"} 。 从那里,重新加载您的服务器,你应该摆脱该错误。

我从这个链接得到了指针

我不确定问题是什么。 该消息不是很有用。

那说下面的add-mysql.cli脚本对我add-mysql.cli

 module add --name=com.mysql --resources=~/Downloads/mysql-connector-java-5.1.37/mysql-connector-java-5.1.37-bin.jar --dependencies=javax.api,javax.transaction.api batch /subsystem=datasources/jdbc-driver=com.mysql:add(driver-name=com.mysql, driver-module-name=com.mysql, driver-xa-datasource-class-name=com.mysql.jdbc.jdbc2.optional.MysqlXADataSource) /subsystem=datasources/xa-data-source=mysql:add(driver-name=com.mysql, jndi-name="java:/jdbc/MySQLXA", enabled=true) /subsystem=datasources/xa-data-source=mysql/xa-datasource-properties=URL:add(value="jdbc:mysql://localhost:3306/temp?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8") run-batch 

我没有编写数据源配置中定义的所有属性,但这确实有效。

WildFly 10在jca中有一些变化导致CLI创建xa ds有一些问题。 https://issues.jboss.org/browse/WFLY-6773 https://issues.jboss.org/browse/WFLY-6789 https://issues.jboss.org/browse/WFLY-6774

但是使用下面的命令创建xa数据

 xa-data-source add --name=MariaDBXADS --driver-name=mariadb-xa --jndi-name=java:jboss/datasources/MariaDBXADS --user-name=jdv_user --password=jdv_pass --use-java-context=true --xa-datasource-properties=[DatabaseName=>products, PortNumber=>3306, ServerName=>localhost] 

WILDFLY 10使用mysql 5.7

请按照以下步骤操作:在standalone.xml中注释或删除exampleds

进入jboss-cli.bat – 执行命令后连接[standalone @ localhost:9990 /] /subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql,driver -Xa-数据源类名= com.mysql.jdbc.jdbc2.optional.MysqlXADataSource)

应该可以

这个修改过的standalone.xml,然后添加

jdbc:h2:mem:test; DB_CLOSE_DELAY = -1; DB_CLOSE_ON_EXIT = FALSE h2 sa sa – > jdbc:mysql:// localhost:3306 / wildfly mysql root jdfoxito10 com.mysql.jdbc.jdbc2.optional.MysqlXADataSource

应该是这样的!

和module.xml放入

\ java中\服务器\ wildfly-10.1.0.Final \模块\ SYSTEM \层\基\ COM \ MySQL的\主

mysql-connector-java-5.1.40-bin.jar(来安装程序mysql-installer-community-5.7.15.0.msi)module.xml

和module.xml中的内容如下:

           

准备好了,JAVA_HOME应该没问题