2015-05-19 71 views
0

我有以下的配置,我的web.xmlJBoss的數據源引用失敗

<resource-ref id="ResourceRef_1234567890"> 
    <res-ref-name>jdbc/pcbDB</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Application</res-auth> 
    <res-sharing-scope>Shareable</res-sharing-scope> 
</resource-ref> 

當我部署我的應用程序正在以下錯誤。

16:29:57745 ERROR [org.jboss.as.controller.management運算](HttpManagementService線程 - 6)JBAS014612:操作( 「部署」)失敗 - 地址:([( 「部署」 =>「APP-5.3.ear」)]) - 失敗描述:{「JBAS014771:缺少/不可用依賴關係的服務」=> [ 「jboss.naming.context.java.module。\」App-5.3 \「。 \ 「WebArchive-5.1 \」。env.jdbc.pcbDB丟失[jboss.naming.context.java.jboss.resources.jdbc.pcbDB]」 ]}

回滾發生以下的是,

16:29:57,777 ERROR [org.jboss.as.server](HttpManagementService-threads-6)JBAS015870:部署部署「APP-5.3.ear」時回滾了以下故障消息: {「JBAS014771 :缺少/不可用依賴的服務「=> [ 」jboss.naming.context.java.module。「App-5.3 \」。\「WebArchive-5.1 \」。env.jdbc.pcbDB is missing [jboss.naming .context.java.jboss.resources.jdbc.pcbDB]」 ]}

我在standalone.xml創建相應的數據源。從Web控制檯測試連接成功....

Name: pcbdb

JNDI: java:/jdbc/pcbDB

這是數據源定義我在standalone.xml .....

<!--Here is datasource config.... As I had many spaces in xml config I couldn't add it as code..... Now I have copied it by the char comes with tilt ~ --> 
       <datasource jndi-name="java:/jdbc/pcbDB" pool-name="pcbdb" enabled="true"> 
        <connection-url>jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=off)(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE)(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>pcbdb</user-name> 
         <password>passwd</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> 

請給解決方案....同樣我也有context.lookup。它看起來像initCtx.lookup("java:comp/env/jdbc/pcbDB"); ......這是正確的......?

+0

能否請您添加實際的數據源定義是什麼?其次,您可能不希望'應用可共享'。相反,它應該是' Container'。該容器將找出auth方法和連接池。無需在應用程序中做到這一點,其實就是擊敗目的。 – CoolBeans

+0

我已經添加了數據源定義,在文章中...... –

+0

'initCtx.lookup(「java:comp/env/jdbc/pcbDB」);'成功我想....但我不太確定因爲我的整體部署失敗...... –

回答

0

JDNI查找失敗這一點, - java:comp/env/jdbc/pcbDB

JNDI查找這個字符串, - java:/jdbc/pcbDB成功....