6.2.2. 将 JDBC 驱动安装为核心模块

预备条件

在执行这个任务之前,你需要满足以下预备条件:

过程 6.3. 将 JDBC 驱动安装为核心模块

  1. EAP_HOME/modules/ 目录下创建一个文件路径结构。例如,对于 MySQL JDBC 驱动,创建下列目录结构:EAP_HOME/modules/com/mysql/main/
  2. 将 JDBC 驱动的 JAR 文件复制到 main/ 子目录。
  3. main/ 子目录里,创建一个类似于下列示例的 module.xml 文件: 第 7.1.1 节 “模块”module XSD 在 EAP_HOME/docs/schema/module-1_2.xsd 文件里进行定义。
  4. 启动服务器。
  5. 启动管理 CLI。
  6. 运行 CLI 命令将 JDBC 驱动模块添加到服务器配置里。
    你选择的命令取决于 JDBC 驱动 JAR 里的 /META-INF/services/java.sql.Driver 文件里列出的类的数量。例如,MySQL 5.1.20 JDBC JAR 里的 /META-INF/services/java.sql.Driver 文件列出了两个类:
    • com.mysql.jdbc.Driver
    • com.mysql.fabric.jdbc.FabricMySQLDriver
    当有多个条目时,您必须也指定驱动类的名称。没这样做会导致这样的错误:
    JBAS014749: Operation handler failed: Service jboss.jdbc-driver.mysql is already registered
    • 为包含一个驱动类条目的 JDBC JAR 运行 CLI 命令。
      /subsystem=datasources/jdbc-driver=DRIVER_NAME:add(driver-name=DRIVER_NAME,driver-module-name=MODULE_NAME,driver-xa-datasource-class-name=XA_DATASOURCE_CLASS_NAME)

      例 6.1. 用于具有一个驱动类的 JDBC JAR 的独立模式的 CLI 命令示例

      /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)

      例 6.2. 用于具有一个驱动类的 JDBC JAR 的域模式的 CLI 命令示例

      /profile=ha/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)
    • 为具有多个驱动类条目的 JDBC JAR 运行 CLI 命令。
      /subsystem=datasources/jdbc-driver=DRIVER_NAME:add(driver-name=DRIVER_NAME,driver-module-name=MODULE_NAME,driver-xa-datasource-class-name=XA_DATASOURCE_CLASS_NAME, driver-class-name=DRIVER_CLASS_NAME)

      例 6.3. 用于具有多个驱动类条目的 JDBC JAR 的独立模式的 CLI 命令示例

      /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)

      例 6.4. 用于具有多个驱动类条目的 JDBC JAR 的域模式的 CLI 命令示例

      /profile=ha/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)
结果

已安装好 JDBC 驱动并设置为核心模块,且可以被应用程序数据源引用。