6.2.2. 将 JDBC 驱动安装为核心模块
预备条件
在执行这个任务之前,你需要满足以下预备条件:
- 从数据库供应商下载 JDBC 驱动。JDBC 驱动的下载位置是:第 6.2.3 节 “JDBC 驱动的下载位置”。
- 解压归档文件。
过程 6.3. 将 JDBC 驱动安装为核心模块
- 在
EAP_HOME/modules/
目录下创建一个文件路径结构。例如,对于 MySQL JDBC 驱动,创建下列目录结构:EAP_HOME/modules/com/mysql/main/
。 - 将 JDBC 驱动的 JAR 文件复制到
main/
子目录。 - 在
main/
子目录里,创建一个类似于下列示例的module.xml
文件: 第 7.1.1 节 “模块”。module
XSD 在EAP_HOME/docs/schema/module-1_2.xsd
文件里进行定义。 - 启动服务器。
- 启动管理 CLI。
- 运行 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 驱动并设置为核心模块,且可以被应用程序数据源引用。