Mar*_*rcy 1 java oracle jboss jdbc
我有几个Jboss EAP 6.1安装与作为模块安装的Oracle驱动程序一起使用.
这是我在standalone.xml中使用的标准配置:
<datasource jndi-name="java:jboss/fooDatasource" pool-name="java:jboss/fooDatasource" enabled="true" use-java-context="false" >
<connection-url>jdbc:oracle:thin:@1.2.3.4:1527/SOMEDB.foo</connection-url>
<driver>oracle</driver>
<security>
<user-name>xxxxx</user-name>
<password>xxxxxxxxx</password>
</security>
[...]
</datasource>
<driver name="oracle" module="oracle.jdbc">
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
<datasource-class>oracle.jdbc.OracleDriver</datasource-class>
</driver>
Run Code Online (Sandbox Code Playgroud)
ojdbc6.jar在$ JBOSS_HOME/modules/system/layers/base/oracle/jdbc/main /中与相应的module.xml一起使用,一切正常.
现在客户需要将驱动程序安装为部署,因此我将ojdbc6.jar移动到$ JBOSS_HOME/standalone/deployments /,我从日志中看到它的部署没有错误:
[org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-3) JBAS010403: Deploying JDBC-compliant driver class oracle.jdbc.OracleDriver (version 11.2)
INFO [org.jboss.as.server] (ServerService Thread Pool -- 25) JBAS018559: Deployed "ojdbc6.jar" (runtime-name : "ojdbc6.jar")
Run Code Online (Sandbox Code Playgroud)
但我不知道如何编辑我的standalone.xml以使其再次工作:我尝试使用几个不同的值编辑驱动程序定义"module"属性(ojdbc6.jar,deployment.ojdbc6.jar,oracle.jdbc.OracleDriver ...)但似乎没有"匹配",Jboss在启动时不断抛出错误:
ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 24) JBAS014613: Operation ("add") failed - address: ([
("subsystem" => "datasources"),
("jdbc-driver" => "oracle")
]) - failure description: "JBAS010441: Failed to load module for driver [ojdbc6.jar]"
[...]
INFO [org.jboss.as.controller] (Controller Boot Thread) JBAS014774: Service status report
JBAS014775: New missing/unsatisfied dependencies:
service jboss.jdbc-driver.oracle (missing) dependents: [service jboss.driver-demander.java:jboss/spiDatasource, service jboss.data-source.java:jboss/fooDatasource]
Run Code Online (Sandbox Code Playgroud)
有谁能提供驱动程序定义的工作示例?
谢谢
好的,我自己找到了答案.
令人惊讶的是,我发现的所有指南都解释了如何通过Web管理界面或通过jboss-cli进行此配置,但Jboss社区中没有人似乎在解释如何手动编辑standalone.xml来完成这项工作.
这是一个工作示例(基本上我只是删除了整个Oracle 驱动程序定义部分,并将数据源定义中的驱动程序名称替换为部署的jar文件的运行时名称):
<datasource jta="false" jndi-name="java:/jdbc/fooDS" pool-name="foo-ds" use-ccm="false">
<connection-url>jdbc:oracle:thin:@1.2.3.4:1527/SOMEDB.foo</connection-url>
<driver-class>oracle.jdbc.OracleDriver</driver-class>
<driver>ojdbc6.jar</driver>
[...] other datasource stuff here
</datasource>
# DELETE FROM HERE...
<driver name="oracle" module="oracle.jdbc">
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
<datasource-class>oracle.jdbc.OracleDriver</datasource-class>
</driver>
# ...TO HERE
Run Code Online (Sandbox Code Playgroud)
就这样.