jboss-eap-6.3集成OracleDS和MySqlDS
Oracl:
在D:\tools\jboss\jboss-eap-6.3\modules\system\layers\base\com目錄下新建oracle\main文件夾:
在此文件夾下添加ojdbc14-10.2.0.4.0.jar和module.xml,內容如下:
3. 修改D:\tools\jboss\jboss-eap-6.3\standalone\configuration\standalone.xml文件,添加如下代碼:
MySql:
在D:\tools\jboss\jboss-eap-6.3\modules\system\layers\base\com目錄下新建mysql\main文件夾:
在此文件夾下添加mysql-connector-java-5.1.29.jar(注意:使用5.1.29以上的版本會(huì )報錯,詳見(jiàn)本文擴展部分)和module.xml,內容如下:
3.修改D:\tools\jboss\jboss-eap-6.3\standalone\configuration\standalone.xml文件,添加如下代碼:
擴展:
集成mysql開(kāi)始時(shí)使用了:mysql-connector-java-5.1.34.jar,啟動(dòng)時(shí)報錯:
12:23:10,872 INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 25) JBAS010404: 部署不兼容 JDBC 的驅動(dòng) class com.mysql.fabric.jdbc.FabricMySQLDriver (版本 5.1)
12:23:10,880 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 25) JBAS014612: 操作("add") 失敗 -- 地址:([
("subsystem" => "datasources"),
("jdbc-driver" => "mysql")
]): org.jboss.msc.service.DuplicateServiceException: Service jboss.jdbc-driver.mysql is already registered
at org.jboss.msc.service.ServiceRegistrationImpl.setInstance(ServiceRegistrationImpl.java:158) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at org.jboss.msc.service.ServiceControllerImpl.startInstallation(ServiceControllerImpl.java:236) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at org.jboss.msc.service.ServiceContainerImpl.install(ServiceContainerImpl.java:742) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at org.jboss.msc.service.ServiceTargetImpl.install(ServiceTargetImpl.java:243) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at org.jboss.msc.service.ServiceControllerImpl$ChildServiceTarget.install(ServiceControllerImpl.java:2433) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at org.jboss.msc.service.ServiceBuilderImpl.install(ServiceBuilderImpl.java:345) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at org.jboss.as.controller.OperationContextImpl$ContextServiceBuilder.install(OperationContextImpl.java:1672) [jboss-as-controller-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.connector.subsystems.datasources.JdbcDriverAdd.startDriverServices(JdbcDriverAdd.java:160)
at org.jboss.as.connector.subsystems.datasources.JdbcDriverAdd.performRuntime(JdbcDriverAdd.java:118)
at org.jboss.as.controller.AbstractAddStepHandler$1.execute(AbstractAddStepHandler.java:75) [jboss-as-controller-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:611) [jboss-as-controller-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:489) [jboss-as-controller-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.controller.AbstractOperationContext.completeStepInternal(AbstractOperationContext.java:290) [jboss-as-controller-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:285) [jboss-as-controller-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.controller.ParallelBootOperationStepHandler$ParallelBootTask.run(ParallelBootOperationStepHandler.java:354) [jboss-as-controller-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_51]
at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.1.1.Final-redhat-1.jar:2.1.1.Final-redhat-1]
分析錯誤原因,mysql驅動(dòng)加載重復了,部署的JDBC 的驅動(dòng) class com.mysql.fabric.jdbc.FabricMySQLDriver正常,但緊接著(zhù)又部署了一個(gè)mysql的數據源,連接mysql時(shí)驅動(dòng)一般是com.mysql.jdbc.Driver,為什么現在是com.mysql.fabric.jdbc.FabricMySQLDriver呢.
換成mysql-connector-java-5.1.29.jar后就不報錯了.比較了jar后得知從mysql-connector-java-5.1.30.jar開(kāi)始jar中多出了fabric的驅動(dòng),在META-INF\services\java.sql.Driver文件中包含兩行
com.mysql.jdbc.Driver
com.mysql.fabric.jdbc.FabricMySQLDriver
而5.1.29中只包含一行
com.mysql.jdbc.Driver.
那么,fabric究竟是什么呢,見(jiàn)下面的文章http://www.mysql.com/products/enterprise/fabric.html
聯(lián)系客服