2009-07-16 35 views
1

我想弄清楚如何爲我的web服務使用數據源。我在我的jboss 4.2.3服務器上部署了oracle-ds.xml,數據源顯示爲JNDI名稱java:TestDS,java:WeatherDS等。如何映射java web服務的數據源

我試着做一個initialcontext.lookup,但我找不到它。我嘗試引用web.xml中的資源,但我得到「java:weatherDS沒有有效的JNDI綁定」...我試過引用「java:/ WeatherDS」,「WeatherDS」,「java:WeatherDS」,「jdbc/WeatherDS「和其他一些,但我想我需要以某種方式將引用名稱映射到jndi名稱。

我發現的代碼片段說:

... 
<resource-ref> 
    <res-ref-name>jdbc/DefaultDS</res-ref-name> 
    <jndi-name>java:/DefaultDS</jndi-name> 
</resource-ref> 
... 

但是,它並沒有說哪裏這個文件,並且需要什麼。我不知道我是否需要資源參考。任何人都可以向我指出一些更完整的信息,即如何在代碼部署後從代碼訪問數據源?我正在嘗試將它連接到我的Web服務。

+0

JNDI查找就是這樣。你能否在啓動日誌中確認數據源實際部署? – Yishai 2009-07-16 16:10:19

回答

0

在JBoss的4.2.3您在文件夾定義在一個XML文件數據源[JBOSS_HOME] /服務器/ [MYSERVER] /部署/

此文件夾名稱創建一個文件:mydatasource -ds.xml

XML的文件內容:

<datasources> 
    <local-tx-datasource> 
    <jndi-name>mydatasource</jndi-name> 
    <!-- Properties for SQLServer --> 
    <connection-url>jdbc:jtds:sqlserver://hostname:1433/db-name;TDS=8.0;lastUpdateCount=true;sendStringParametersAsUnicode=false</connection-url> 
    <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class> 
    <!-- Properties for SQLServer end --> 
    <user-name>name</user-name> 
    <password>pwd</password> 
    <min-pool-size>5</min-pool-size> 
    <max-pool-size>50</max-pool-size> 
    <idle-timeout-minutes>15</idle-timeout-minutes> 
    <blocking-timeout-millis>15000</blocking-timeout-millis> 
    </local-tx-datasource> 
</datasources> 

爲了可以從正常的JNDI查找部署在同一個JBoss的每個應用程序訪問這些數據源。

重要提示:在代碼中使用jndi名稱前綴java:/。上面的數據源的應用程序中的完整JNDI名稱是java:/ mydatasource