2012-07-18 54 views
1

可能重複:
What is resource-ref in web.xml used for?什麼是意味着資源引用標籤,在web.xml?

我添加了以下標籤中的Tomcat context.xml

<Resource name="jdbc/PollDatasource" auth="Container" type="javax.sql.DataSource" 
    driverClassName="org.apache.derby.jdbc.ClientDriver" url="jdbc:derby://localhost:1527/poll_database;create=true" 
    username="suhail" password="suhail" maxActive="20" maxIdle="10" maxWait="-1" /> 

上面的標籤被讀取,當服務器啓動,應用程序已部署。我還添加了在我的項目的web.xml如下:

<resource-ref> 
    <description>my connection</description> 
    <res-ref-name>jdbc/PollDatasource</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
</resource-ref> 

什麼是上面的標籤意味着?

,因爲當我寫這樣一份聲明:

DataSource ds = (DataSource)envContext.lookup("jdbc/PollDatasource") 

沒有它直視服務器的context.xml?我知道我wrong.In這種情況下,請幫助我瞭解什麼是resource-ref標籤在web.xml意味着?

+0

可能的複製 - http://stackoverflow.com/q/2887967/204788 – 2012-07-18 18:19:38

回答

2

我相信它的意思是「暗示」或實時文檔,你的Web應用程序預計將有具體的名稱和其他屬性訪問JNDI資源。 context.xml文件是一個Tomcat神器而許多應用服務器中嵌入Tomcat引擎,它遠未普及。

2

你有下面的代碼

DataSource ds = (DataSource)envContext.lookup("java:comp/env/jdbc/PollDatasource"); 

你的web應用程序中查找,

的JNDI上下文是應用程序內和在應用程序之外的不同,在這種情況下的context.xml裏面,在那裏你定義您的資源。

所有種源-REF部分中定義的resouces被映射到應用程序的env上下文。所以,應用程序可以訪問這些資源。應用程序上下文和容器上下文之間的交叉引用在部署時完成。