无法在Jboss EAP 7.0服务器中创建oracle数据源 [英] Unable to create oracle data source in Jboss EAP 7.0 server
问题描述
我需要在JBOSS EAP 7.0服务器中创建一个oracle数据源
I need to create an oracle data source in JBOSS EAP 7.0 server
我使用以下命令从JBOSS管理CLI(命令行界面)部署了 ojdbc6.jar
I deployed ojdbc6.jar from the JBOSS management CLI(Command Line Interface) using the below command
deploy <PATH_TO_ORACLE_DRIVER_JAR>
部署驱动程序后,我会看到如下所示的服务器日志
I could see the server log as below after the driver is deployed
01:25:53,338 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-1) WFLYJCA0018: Started Driver service with driver-name = ojdbc6.jar
01:25:53,747 INFO [org.jboss.as.server] (management-handler-thread - 6) WFLYSRV0010: Deployed "ojdbc6.jar" (runtime-name : "ojdbc6.jar")
但是当我尝试从Jboss管理控制台创建oracle数据源(oracle.jdbc.driver.OracleDriver作为驱动程序类)时,出现以下错误
But when I try to create oracle data source(oracle.jdbc.driver.OracleDriver as driver class) from Jboss management console, I get the below error
01:31:35,084 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 66) WFLYCTL0013: Operation ("add") failed - address: ([
("subsystem" => "datasources"),
("data-source" => "OracleDS")
]) - failure description: {"WFLYCTL0180: Services with missing/unavailable dependencies" => [
"jboss.driver-demander.java:/OracleDS is missing [jboss.jdbc-driver.oracle]",
"org.wildfly.data-source.OracleDS is missing [jboss.jdbc-driver.oracle]"
]}
01:31:35,092 INFO [org.jboss.as.controller] (ServerService Thread Pool -- 66) WFLYCTL0183: Service status report
WFLYCTL0184: New missing/unsatisfied dependencies:
service jboss.data-source.reference-factory.OracleDS (missing) dependents: [service jboss.naming.context.java.OracleDS]
service jboss.data-source-config.OracleDS (missing) dependents: [service org.wildfly.data-source.OracleDS]
service jboss.jdbc-driver.oracle (missing) dependents: [service jboss.driver-demander.java:/OracleDS, service org.wildfly.data-source.OracleDS]
1)我可以知道是什么引起了这个问题吗?缺少什么依存关系?
2)将JDBC驱动程序安装为数据源创建的JAR部署是否正确?
1) May I know what is causing this issue? What dependency is missing?
2) Is installing JDBC driver as a JAR deployment for data source creation correct method?
推荐答案
将JDBC驱动程序安装为核心模块
-
在$ JBOSS_HOME/modules下创建目录.在此示例中:"$ JBOSS_HOME/modules/com/oracle/jdbc/main".
Install a JDBC Driver as a Core Module
Create a directory under $JBOSS_HOME/modules. In this example: "$JBOSS_HOME/modules/com/oracle/jdbc/main".
将JDBC驱动程序jar(ojdbc6.jar)放在此目录中.
Put the the JDBC driver jar (ojdbc6.jar) in this directory.
创建模块配置文件module.xml:
Create a module configuration file module.xml:
<?xml version="1.0" ?> <module xmlns="urn:jboss:module:1.1" name="com.oracle"> <resources> <resource-root path="ojdbc6.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> </module>
示例Oracle数据源配置
<datasources> <datasource jndi-name="java:jboss/OracleDS" pool-name="OracleDS"> <connection-url>jdbc:oracle:thin:@localhost:1521:XE</connection-url> <driver>oracle</driver> <security> <user-name>admin</user-name> <password>admin</password> </security> <validation> <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/> <validate-on-match>true</validate-on-match> <background-validation>false</background-validation> <stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/> <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/> </validation> </datasource> <drivers> <driver name="oracle" module="com.oracle"> <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class> </driver> </drivers> </datasources>
示例管理CLI命令
可以使用以下管理CLI命令来实现此示例配置.
Example Management CLI Commands
This example configuration can be achieved by using the following management CLI commands.
1#将Oracle JDBC驱动程序添加为核心模块.
1# Add the Oracle JDBC driver as a core module.
模块添加--name = com.oracle --resources =/path/to/misc/jdbc_drivers/oracle/ojdbc7.jar --dependencies = javax.api,javax.transaction.api
module add --name=com.oracle --resources=/path/to/misc/jdbc_drivers/oracle/ojdbc7.jar --dependencies=javax.api,javax.transaction.api
2#注册Oracle JDBC驱动程序.
2#Register the Oracle JDBC driver.
/subsystem = datasources/jdbc-driver = oracle:add(驱动程序名称= oracle,驱动程序模块名称= com.oracle,driver-xa-datasource-class-name = oracle.jdbc.xa.client. OracleXADataSource)
/subsystem=datasources/jdbc-driver=oracle:add(driver-name=oracle,driver-module-name=com.oracle,driver-xa-datasource-class-name=oracle.jdbc.xa.client.OracleXADataSource)
3#添加Oracle数据源.
3#Add the Oracle datasource.
数据源添加--name = OracleDS --jndi-name = java:jboss/OracleDS --driver-name = oracle --connection-url = jdbc:oracle:thin:@localhost:1521:XE- user-name = admin --password = admin --validate-on-match = true --background-validation = false --valid-connection-checker-class-name = org.jboss.jca.adapters.jdbc.extensions. oracle.OracleValidConnectionChecker --exception-sorter-class-name = org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter --stale-connection-checker-class-name = org.jboss.jca.adapters.jdbc. extensions.oracle.OracleStaleConnectionChecker
data-source add --name=OracleDS --jndi-name=java:jboss/OracleDS --driver-name=oracle --connection-url=jdbc:oracle:thin:@localhost:1521:XE --user-name=admin --password=admin --validate-on-match=true --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter --stale-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker
这篇关于无法在Jboss EAP 7.0服务器中创建oracle数据源的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!