在 JBOSS7 中安装 MariaDB Java 连接器
我无法使用 MariaDB 在 JBOSS7 上部署 EJBCA 6。我已将 EJBCA 配置为独立使用 JBOSS。我的配置在使用默认的 H2 数据库后端时有效。我在 JBOSS Standalone.xml 中配置了 mariadb Java 连接器
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="mariadb" module="org.mariadb.jdbc">
<xa-datasource-class>org.mariadb.jdbc.MySQLDataSource</xa-datasource-class>
</driver>
</drivers>
<datasource jndi-name="java:/MariaDS" pool-name="MariaDS" enabled="false">
<connection-url>jdbc:mariadb://localhost:3306/ejbca</connection-url>
<driver>mariadb</driver>
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
<pool>
<min-pool-size>100</min-pool-size>
<max-pool-size>200</max-pool-size>
</pool>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
<statement>
<prepared-statement-cache-size>100</prepared-statement-cache-size>
<share-prepared-statements/>
</statement>
</datasource>
</datasources>
我已将 MariaDB Java 连接器复制到 JBOSS_HOME/modules/org/mariadb/jdbc/main/mariadb-java-client-1.1.5.jar 并像这样配置 module.xml:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="org.mariadb.jdbc">
<resources>
<resource-root path="mariadb-java-client-1.1.5.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
MariaDB 驱动程序列在 boot.log 和 server.log 中。它也通过 jboss-cli 列出:
[standalone@localhost:9999 /] /subsystem=datasources:installed-drivers-list
{
"outcome" => "success",
"result" => [
{
"driver-name" => "mariadb",
"deployment-name" => undefined,
"driver-module-name" => "org.mariadb.jdbc",
"module-slot" => "main",
"driver-datasource-class-name" => "",
"driver-xa-datasource-class-name" => "org.mariadb.jdbc.MySQLDataSource",
"driver-class-name" => "org.mariadb.jdbc.Driver",
"driver-major-version" => 1,
"driver-minor-version" => 1,
"jdbc-compliant" => false
},
{
"driver-name" => "h2",
"deployment-name" => undefined,
"driver-module-name" => "com.h2database.h2",
"module-slot" => "main",
"driver-datasource-class-name" => "",
"driver-xa-datasource-class-name" => "org.h2.jdbcx.JdbcDataSource",
"driver-class-name" => "org.h2.Driver",
"driver-major-version" => 1,
"driver-minor-version" => 3,
"jdbc-compliant" => true
}
]
}
我已经像这样设置了 EJBCA database.properties:
database.driver=org.mariadb.jdbc.Driver
database.url=jdbc:mysql://hostname:3306/ejbca?characterEncoding=UTF
database.name=mysql
但是,当我尝试使用 ant deploy 将 EJBCA 部署到 JBOSS 时,部署失败并显示:
jee:deployDSJBoss7:
[exec] Result: 1
[exec] Result: 1
[echo] data-source add --name=ejbcads --driver-name="org.mariadb.jdbc.Driver" --connection-url="jdbc:mysql://ejbca-test-05.vm:3306/ejbca?characterEncoding=UTF-8" --jndi-name="java:/EjbcaDS" --use-ccm=true --user-name="ejbca" --password="reverse" --validate-on-match=true --background-validation=false --prepared-statements-cache-size=50 --share-prepared-statements=true --min-pool-size=5 --max-pool-size=150 --pool-prefill=true --transaction-isolation=TRANSACTION_READ_COMMITTED --check-valid-connection-sql="select 1"
[exec] JBAS010468: Driver named "org.mariadb.jdbc.Driver" is not installed.
我究竟做错了什么?