Jboss EAP7 / Wildfly Oracle数据源错误:具有缺失/不可用依赖性的服务

时间:2018-03-27 07:27:20

标签: wildfly datasource jboss-eap-7

我现在正在使用Jboss EAP 7.1,最近我将Oracle数据源作为我之前正确配置的数据源添加到服务器。但是我收到了错误消息:

依赖项缺失/不可用的服务“=> [         “org.wildfly.data-source.CreditDS缺失[jboss.jdbc-driver.oracle11g]”

CreditDs是我的JNDI名称,oracle11g是驱动程序名称。这是我的配置:

<!-- standalone.xml -->
<datasource jndi-name="java:jboss/datasources/CreditDS" pool-name="CreditDS" enabled="true">
    <connection-url>jdbc:oracle:thin:@***</connection-url>
    <driver>oracle11g</driver>
    …… …… ……
</datasource>
<drivers>
<driver name="oracle11g" module="com.oracle.ojdbc14">
    <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
</driver>
</drivers>

这是modules / com / oracle / ojdbc14 / main中的 modules.xml

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.oracle.ojdbc14">
    <resources>
        <resource-root path="ojdbc14-10.2.0.4.0.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>

怎么了?

1 个答案:

答案 0 :(得分:0)

我猜您的oracle模块无法正确识别。

添加oracle JDBC模块的过程如下:

1创建文件夹com/oracle/ojdbc14/10.2.0.4.0,其中包含JBOSS_HOME/modules目录
2将您的oracle jar文件复制到该文件夹​​,并添加module.xml以及以下内容

 <?xml version="1.0" encoding="UTF-8"?>
 <module xmlns="urn:jboss:module:1.3" name="com.oracle.ojdbc14" slot="10.2.0.4.0">
   <resources>
     <resource-root path="ojdbc14-10.2.0.4.0.jar"/>
   </resources>
   <dependencies>
     <module name="javax.api"/>
     <module name="javax.transaction.api"/>
   </dependencies>
 </module>

3在standalone.xml中创建驱动程序定义

 <driver name="oracle14" module="com.oracle.ojdbc14:10.2.0.4.0">
     <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
 </driver>

需要注意的事项:

请注意正确版本的JBoss模块XMLNS - 您使用EAP7标记了您的问题 - 因此您应该使用xmlns 1.3。
请注意slot和驱动程序定义中的modules.xml值。这可能是任何价值,但使用lib版本是一个好习惯 在JBoss中添加任何模块后,需要完全重启(重启JVM) 最后,您应该使用最新版本的Oracle JDBC驱动程序,因为不再支持ojdbc14,所以它应该是这样的:

Module.xml

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="com.oracle.ojdbc7" slot="12.1.0.2">
<resources>
  <resource-root path="ojdbc7-12.1.0.2.jar"/>
</resources>

<dependencies>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
</dependencies>

文件夹modules/com/oracle/ojdbc7/12.1.0.2

司机:

<driver name="oracle7" module="com.oracle.ojdbc7:12.1.0.2">
   <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
</driver>