jboss 7 oracle数据源配置

时间:2012-08-21 07:07:59

标签: oracle datasource jboss7.x

我目前正在从jboss 4.3迁移到jboss 7.1.1(最终版),我正在尝试配置oracle数据源,但它无法正常工作。以下是我为设置oracle数据源所做的工作

1)下载ojdbc6-11.jar并将其放在$ JBOSS_HOME / modules / com / oracle / ojdbc6 / main

文件夹中

2)在$ JBOSS_HOME / modules / com / oracle / ojdbc6 / main下创建了文件module.xml,这是文件的内容

<module xmlns="urn:jboss:module:1.0" name="com.oracle.ojdbc6">
  <resources>
    <resource-root path="ojdbc6.jar"/>
  </resources>
  <dependencies>
    <module name="javax.api"/>
  </dependencies>
</module>

3)在standalone.xml

中添加了以下驱动程序和数据源
<drivers>
  <driiver name="oracle" module="com.oracle.ojdbc6">
    <xa-datasource-class>oracle.jdbc.OracleDriver</xa-datasource-class>
  </driver>
</drivers>

<datasource jndi-name="java:/Altis" pool-name="Altis" enabled="true" use-java-context="true">
  <connection-url>connurl</connection-url>
  <driver>oracle</driver>
  <security>
    <user-name>username</user-name>
    <password>passwd</password>
  </security>
</datasource>
</datasources>

但是,当我部署war文件时,我收到以下错误

16:54:43,281 INFO  [org.jboss.as.server] (HttpManagementService-threads - 2) JBA
S015870: Deploy of deployment "altisavante.war" was rolled back with failure mes
sage {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.na
ming.context.java.module.altisavante.altisavante.env.Altisjboss.naming.context.j
ava.AltisMissing[jboss.naming.context.java.module.altisavante.altisavante.env.Al
tisjboss.naming.context.java.Altis]"]}

我错过了什么吗?

7 个答案:

答案 0 :(得分:14)

这是关于JBoss 7的数据源配置的链接,当然可以使用7.1

https://community.jboss.org/wiki/DataSourceConfigurationInAS7

示例是配置MySQL示例。
这就是我为Oracle驱动程序所做的事情

<datasource jndi-name="java:/sigap_ws_receiver" pool-name="sigap_ws_receiver" enabled="true">
    <connection-url>jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=off)(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.1)(PORT=1524))(CONNECT_DATA=(SERVICE_NAME=profepa)(SERVER=DEDICATED)))</connection-url>
    <driver>com.oracle</driver>
    <pool>
        <min-pool-size>3</min-pool-size>
        <max-pool-size>5</max-pool-size>
    </pool>
    <security>
        <user-name>user</user-name>
        <password>pass</password>
    </security>
    <validation>
        <exception-sorter class-name="org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter"/>
    </validation>
    <timeout>
        <blocking-timeout-millis>5000</blocking-timeout-millis>
        <idle-timeout-minutes>5</idle-timeout-minutes>
    </timeout>
</datasource>

司机部分如下所示:

<drivers>
    <driver name="com.oracle" module="com.oracle">
        <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
    </driver>
</drivers>

我的module.xml位于jar ojdbc6.jar中的$ JBOSS_HOME \ modules \ com \ oracle \ main下:

<module xmlns="urn:jboss:module:1.0" name="com.oracle">
    <resources>
        <resource-root path="ojdbc6.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
    </dependencies>
</module>

答案 1 :(得分:4)

所有这些答案都帮助我把它付诸实践,但没有一个是确切的解决方案,所以我想我会添加我的。

首先,请注意您可以在JBoss web-console中执行此操作,也可以在xml文件中手动配置数据源。但是,我强烈建议您通过Web控制台进行配置,以避免错误,例如OP制作的错误,显然没有人注意到:

<drivers>
  <driiver name="oracle" module="com.oracle.ojdbc6">
    <xa-datasource-class>oracle.jdbc.OracleDriver</xa-datasource-class>
  </driver>
</drivers>

请注意,驱动程序声明包含两个i。

手动配置[不推荐]

首先,您必须确保已配置Oracle jdbc。

  • 导航至$JBOSS_HOME/modules,如果尚不存在,请创建文件夹树oracle/jdbc/main
  • 导航到该文件夹​​并复制odjbc6-11.jar
  • 使用以下内容创建module.xml
<module>
    <resources>
        <!-- make sure the path match the name of the file -->
        <resource-root path="ojdbc6-11.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>

现在您的jdbc已配置,您必须编辑standalone.xml文件以指定驱动程序和数据源属性。

  • 导航至$JBOSS_HOME/standalone/configuration并编辑standalone.xml文件。
  • 找到drivers代码并按照以下步骤配置您的驱动程序:
<driver name="oracle" module="oracle.jdbc">
    <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
</driver>
  • 现在添加数据源配置:
<datasource jndi-name="java:jboss/datasources/Altis" pool-name="Altis" enabled="true">
  <connection-url>jdbc:oracle:thin:@255.255.255.255:1521:sid</connection-url>
  <driver-class>oracle.jdbc.OracleDriver</driver-class>
  <driver>oracle</driver>
  <security>
    <user-name>username</user-name>
    <password>passwd</password>
  </security>
</datasource>

在线配置[推荐]

  • 导航到管理控制台(默认情况下为localhost:9990 / console)
  • 点击配置,然后展开连接器
  • 中的数据源
  • 点击添加(数据源表右侧的第一个按钮)
  • 根据您的情况Altis
  • 填写姓名
  • 在您的案例java:jboss/datasources/Altis中填写JNDI名称。请注意,JNDI名称必须以java:/java:jboss/
  • 开头
  • 选择您的驱动程序,如果已正确配置,则应该在检测到的驱动程序中。
  • jdbc:oracle:thin:@255.255.255.255:1521:sid
  • 填写连接网址
  • 填写用户名和密码。
  • 如果需要,您可以将安全域清空。
  • 确保在点击“完成”之前测试连接。
  • 保存数据源后,在表格中选择它,然后点击Enable

答案 2 :(得分:1)

在module.xml jar中,您有path="ojdbc6.jar"资源根标记,但您说您下载了ojdbc6-11.jar

我认为你需要在module.xml中使用path="ojdbc6-11.jar"

答案 3 :(得分:0)

尝试在驱动程序中使用driver-class <driver-class>oracle.jdbc.OracleDriver</driver-class>

答案 4 :(得分:0)

验证$ JBOSS_HOME \ modules \ system \ layers \ base \ com \ oracle \ ojdbc6 \ main是否存在并且有ojdbcXX.jar和module.xml 模块名称=&#34; com.oracle.ojdbc&#34;在module.xml中应该与module =&#34; com.oracle.ojdbc&#34;匹配。在standalone.xml中

e.g。 module.xml - &gt;

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="**com.oracle.ojdbc6**">
    <resources>
        <resource-root path="ojdbc6.jar"/>
        <!-- Insert resources here -->
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
        <module name="javax.servlet.api" optional="true"/>
    </dependencies>
</module>
standalone.xml -->

<datasource jndi-name="java:/abc" pool-name="abc" enabled="true" use-java-context="true">
                    <connection-url>jdbc:oracle:thin:@localhost:1521:orcl</connection-url>
                    <driver>**oracle**</driver>
                    <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
                    <security>
                        <user-name>a_user</user-name>
                        <password>pwdXXX</password>
                    </security>
                </datasource>

                <drivers>
                    <driver name="**oracle**" module="**com.oracle.ojdbc6**">
                    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
                    <xa-datasource-class>oracle.jdbc.driver.OracleDriver</xa-datasource-class>
                    </driver>
                    </driver>

答案 5 :(得分:0)

除了Jean-FrançoisSavard的手动解决方案之外,我还从jboss-deployment-structure.xml中排除了jars,然后才设法启动并运行它。只需在此处登录,这可能对其他人有所帮助。我的jboss-deployment-structure.xml示例位于

之下

enter code here     

<!--exclude-subsystems>
<subsystem name="jpa" />
</exclude-subsystems-->
<!--http://mca.intranet.barclays.co.uk/confluence/display/MCA/Changes+required+in+MCA+for+aPaaS-->

<exclusions>
    <module name="org.codehaus.jackson.jackson-core-asl" />
    <module name="org.codehaus.jackson.jackson-mapper-asl" />
    <module name="org.apache.log4j" />
    <module name="javax.persistence.api" />
    <module name="org.hibernate" />

</exclusions>
    <dependencies>

        <module name="javax.activation.api" export="true"/>
        <module name="javax.annotation.api" export="true"/>
        <module name="javax.ejb.api" export="true"/>
        <module name="javax.el.api" export="true"/>
        <module name="javax.enterprise.api" export="true"/>
        <module name="javax.enterprise.deploy.api" export="true"/>
        <module name="javax.inject.api" export="true"/>
        <module name="javax.interceptor.api" export="true"/>
        <module name="javax.jms.api" export="true"/>
        <module name="javax.jws.api" export="true"/>
        <module name="javax.mail.api" export="true"/>
        <module name="javax.management.j2ee.api" export="true"/>

        <module name="javax.resource.api" export="true"/>
        <module name="javax.rmi.api" export="true"/>
        <module name="javax.security.auth.message.api" export="true"/>
        <module name="javax.security.jacc.api" export="true"/>
        <module name="javax.servlet.api" export="true"/>
        <module name="javax.servlet.jsp.api" export="true"/>
        <module name="javax.transaction.api" export="true"/>
        <module name="javax.validation.api" export="true"/>
        <module name="javax.ws.rs.api" export="true"  services="export"/>
        <module name="javax.xml.bind.api" export="true"/>
        <module name="javax.xml.registry.api" export="true"/>
        <module name="javax.xml.soap.api" export="true"/>
        <module name="javax.xml.ws.api" export="true"/>
        <module name="org.jboss.as.jmx" />
        <!--module name="ibm.mq" /-->
        <module name="javax.api" export="true"/>

    </dependencies>
</deployment>

答案 6 :(得分:0)

转到JBoss AS的控制台面板。在 adduser.bat 的帮助下输入您创建的用户的用户名和密码。然后将显示有关所有配置的页面。现在按照以下步骤进行操作:

1)转到个人资料

2)从左侧窗格中选择数据源

3)然后点击数据源部分

中的添加按钮

4)提供姓名,jndi名称等详细信息。

  • 名称:OracleDS
  • Jndi:java:jboss / datasources / OracleDS

5)点击下一步按钮

6)在standalone.xml的帮助下选择你在jboss中部署的驱动程序

7)点击下一步按钮

8)现在填写详细信息......

  • connection url:jdbc:oracle:thin:@ [host]:1521:[sid]
  • 用户名:[用户]
  • 密码:[pass]
  • 安全域:将其留空

9)点击完成。

现在会显示一条消息,&#34;数据源已成功添加&#34;

那就是...... !!!