【问题标题】:jboss 6.2 EAP unable to add mysql datasource and modulejboss 6.2 EAP无法添加mysql数据源和模块
【发布时间】:2014-07-28 15:35:50
【问题描述】:

我无法将 mysql jdbc 驱动程序添加到我的 jboss 6.2 EAP。我按照那里描述的每个步骤进行操作: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 or 8。

谢谢

【问题讨论】:

    标签: mysql jboss datasource


    【解决方案1】:

    问题是由 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)
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 很好......这在 JBoss AS 7.1.1 中对我有用
      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-05-28
          • 2014-10-13
          • 2020-01-20
          • 1970-01-01
          • 2017-01-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多