2014-09-05 115 views
1

我有几个Jboss EAP 6.1安装程序与作为模块安装的Oracle驱动程序一起工作。作为部署进行安装时,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> 

的ojdbc6.jar是在$ JBOSS_HOME /模块/系统/层/基层/ ORACLE/JDBC /与适当的主/在一起module.xml和一切工作正常。

现在安装驱动程序的部署要求,让客户我搬到ojdbc6.jar到$ JBOSS_HOME /独立/部署/我从它被部署没有错误日志中看到:

[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") 

但我不知道如何编辑我的standalone.xml以使其重新工作:我试图用几个不同的值编辑驱动程序定义“模块”属性(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] 

任何人都可以提供一个驱动程序定义的工作示例吗?

谢谢

回答

6

好的,我自己找到了答案。

令人惊讶的是,我周围发现的所有指南都解释了如何通过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 

就这样。

-1

也许你有这样提...

<subsystem xmlns="urn:jboss:domain:datasources:1.1"> 
     <datasources> 
      <datasource jndi-name="java:jboss/XXX" pool-name="XXX"  enabled="true" use-java-context="true"> 
       <connection-url>jdbc:oracle:thin:@SID:PORT:DBNAME</connection-url> 
       <driver>oracle</driver> 
       <security> 
        <user-name>user</user-name> 
        <password>password</password> 
       </security> 
      </datasource> 
      <drivers> 
       <driver name="oracle" module="com.oracle"> 
        <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class> 
        <datasource-class>oracle.jdbc.OracleDriver</datasource-class> 
       </driver> 
      </drivers> 
     </datasources> 
</subsystem> 
+1

这并不提供答案的问题。要批评或要求作者澄清,在他们的帖子下留下评论 - 你总是可以评论你自己的帖子,一旦你有足够的[声誉](http://stackoverflow.com/help/whats-reputation),你会能够[评论任何帖子](http://stackoverflow.com/help/privileges/comment)。 – sina72 2015-03-03 12:37:00

+0

它解决了驱动程序错误! – Vivek 2015-03-03 13:50:26

+1

虽然此代码块可能会回答问题,但您应始终提供一些解释。 – 2015-03-03 15:53:27

-1
  1. 创建像X1/X2目录/主
  2. 创建主目录下module.xml文件
  3. 保持ojdbc6 -11.1.1.3.0.jar在主目录级别

在Module.xml中

<module xmlns="urn:jboss:module:1.1" name="x1.x2"> 
<properties> 
    <property name="jboss.api" value="unsupported"/> 
</properties> 
<resources> 
    <resource-root path="ojdbc6-11.1.1.3.0.jar"/> 
</resources> 
<dependencies> 
    <module name="javax.api"/> 
    <module name="javax.transaction.api"/> 
    <module name="javax.servlet.api" optional="true"/> 
</dependencies> 

在域。XML

<datasource jndi-name="java:/TestName" pool-name="TestName" enabled="true" use-java-context="true"> 
        <connection-url>jdbc:oracle:thin:@ldap://xxxxx:3000/UKXXX,cn=OracleContext,dc=dcm,dc=XXXX</connection-url> 
        <driver>dps</driver> 
        <security> 
         <user-name>XXXXX</user-name> 
         <password>*****</password> 
        </security> 
       </datasource> 
       <drivers> 
        <driver name="dps" module="x1.x2"> 
         <xa-datasource-class>oracle.jdbc.driver.OracleDriver</xa-datasource-class> 
        </driver> 
        </driver> 
       </drivers> 

尽量保持正确的ojdbc罐子,一些版本将无法正常工作:)

+0

我认为你没有很好地阅读我的问题......我已经有了一个工作模块配置。我问过如何摆脱这种情况,然后切换到另一种方式。顺便提一下,这个问题已经解决了 – MariusPontmercy 2016-10-14 13:45:55

相关问题