簡體   English   中英

jboss 7 oracle數據源配置

[英]jboss 7 oracle datasource configuration

我目前正在從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]"]}

我錯過了什么嗎?

這是關於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>

所有這些答案都幫助我把它付諸實踐,但沒有一個是確切的解決方案,所以我想我會添加我的。

首先,請注意您可以在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)
  • 單擊Configuration並展開Connector中的 Datasources
  • 單擊add(數據源表右側的第一個按鈕)
  • 填寫名稱,在您的情況下Altis
  • 填寫JNDI名稱,在您的情況下為java:jboss/datasources/Altis 請注意,JNDI名稱必須以java:/java:jboss/開頭java:jboss/
  • 選擇您的驅動程序,如果已正確配置,它應位於檢測到的驅動程序中。
  • 填寫連接URL為jdbc:oracle:thin:@255.255.255.255:1521:sid
  • 填寫用戶名和密碼。
  • 如果需要,可以將安全域清空,也可以指定安全域。
  • 確保在單擊“完成”之前測試連接。
  • 保存數據源后,在表中選擇它並單擊“ Enable

在module.xml jar中, path="ojdbc6.jar" -root標簽有path="ojdbc6.jar" ,但是你說你下載了ojdbc6-11.jar

我認為你需要在path="ojdbc6-11.jar"path="ojdbc6-11.jar"

嘗試在驅動程序中使用驅動程序類作為<driver-class>oracle.jdbc.OracleDriver</driver-class>

驗證$ JBOSS_HOME \\ modules \\ system \\ layers \\ base \\ com \\ oracle \\ ojdbc6 \\ main存在並且模塊中的ojdbcXX.jar和module.xml模塊名稱=“com.oracle.ojdbc”應該與module =“com匹配.oracle.ojdbc“在standalone.xml中

例如module.xml - >

<?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>

除了Jean-FrançoisSavard的手動解決方案之外,我還從jboss-deployment-structure.xml中排除了罐子,然后我才設法讓它運行起來。 只是在這里登錄可能會對其他人有所幫助。我的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>

轉到JBoss AS的控制台面板。 adduser.bat的幫助下輸入您創建的用戶的用戶名和密碼。 然后將顯示有關所有配置的頁面。 現在按照以下步驟操作:

1)轉到個人資料

2)從左側窗格中選擇數據源

3)然后單擊datasource部分中的add按鈕

4)提供姓名,jndi名稱等詳細信息。

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

5)單擊下一步按鈕

6)在standalone.xml的幫助下選擇你在jboss中部署的驅動程序

7)單擊下一步按鈕

8)現在填寫詳細信息......

  • 連接url:jdbc:oracle:thin:@ [host]:1521:[sid]
  • 用戶名:[用戶]
  • 密碼:[通過]
  • 安全域:留空

9)點擊完成。

現在會出現一條消息“Datasource添加成功”

而已....!!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM