jboss 6.2 EAP无法添加mysql数据源和模块

时间:2014-06-07 13:06:55

标签: mysql jboss datasource

我无法在我的jboss 6.2 EAP中添加mysql jdbc驱动程序。我按照那里描述的每个步骤进行了跟踪:Install a JDBC Driver as a Core Module

但是每当我尝试在命令行中创建数据源时,jboss都会返回以下消息:

[standalone@localhost:9999 /] /subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql,driver-xa-datasource-class-name=com.mysql.jdbc.jdbc2.optional.MysqlXADataSource)
        {
        "outcome" => "failed",
        "failure-description" => "JBAS014749: Operation handler failed: Service jboss.jdbc-driver.mysql is already registered",
        "rolled-back" => true
    }

当我尝试手动将数据源配置添加到我的standalone-full.xml文件时,我在启动时获得了相同的消息。

我将我的jar驱动程序放在EAP_HOME / modules / com / mysql / main /中,这是我的模块配置:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.mysql"> 
    <resources>  
        <resource-root path="mysql-connector-java-5.1.31.jar" />  
    </resources>
    <dependencies>  
        <module name="javax.api"/>  
        <module name="javax.transaction.api"/>  
    </dependencies>  
</module>

我的开发环境:ubuntu 14.04,sun jdk 7或8。

谢谢

4 个答案:

答案 0 :(得分:6)

问题是由MySQL JDBC驱动程序JAR中的META-INF/services/java.sql.Driver中的2个条目引起的:

com.mysql.jdbc.Driver
com.mysql.fabric.jdbc.FabricMySQLDriver

JBoss EAP 6.2可能不会期望超过1个条目。我在an issue填写了问题说明。

尽管如此,您可以在CLI命令中为 driver-class-name 属性定义值,您应该得到预期的行为:

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

答案 1 :(得分:5)

@ kwart的答案对我不起作用(在JBoss EAP 6.2.0.GA(AS 7.3.0.Final-redhat-14)上运行,使用mysql-connector-java-5.1.32 jdbc驱动程序),I通过将以下内容直接添加到standalone.xml

来修复它
    <subsystem xmlns="urn:jboss:domain:datasources:1.1">
        <datasources>
            <!-- snip -->
            <drivers>

                <driver name="mysql" module="com.mysql">
                    <driver-class>com.mysql.jdbc.Driver</driver-class>
                    <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
                </driver>

            </drivers>
        </datasources>
    </subsystem>

确保在执行此操作时服务器已停止,否则更改将消失..

答案 2 :(得分:0)

我遇到了同样的问题并使用旧版驱动程序解决了:mysql-connector-java-5.1.27-bin.jar

org.jboss.msc.service.DuplicateServiceException:服务jboss.jdbc-driver.mysql已注册 - &gt; https://access.redhat.com/site/solutions/878573

答案 3 :(得分:0)

我使用mysql-connector-java-5.1.33.jar遇到了同样的问题,并使用旧版本解决了它:mysql-connector-java-5.1.29.jar。 服务器现在正常启动