2011-05-13 100 views
4

我努力在Tomcat 6.0.32中配置一個簡單的JNDI池數據源。如何在Tomcat 6中配置全局JNDI數據源?

我想在我的Web應用程序工件外創建數據源定義。基本上我不希望我的應用程序知道訪問數據庫服務器的憑據。 我的想法是,像Weblogic一樣,應該可以在Tomcat中創建一個「全局」JNDI數據源,但到目前爲止,我一直沒有成功。

我試圖添加數據源定義在CATALINA_HOME/CONF /上下文:

<Resource name="jdbc/mydb" 
auth="Container" 
type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver" 
factory="oracle.jdbc.pool.OracleDataSourceFactory" 
url="jdbc:oracle:thin:@1.1.1.1.:xxx" 
user="xxxx" 
password="yyyy"/> 

其結果是,在服務器啓動時輸出下面的行,:

SEVERE: Null component Catalina:type=DataSource,path=/,host=localhost,class=javax.sql.DataSource,name="jdbc/mydb" 

任何指針將不勝感激。

回答

15

將您的數據源配置移至server.xml <GlobalNamingResources>。 (並且不要忘記將驅動程序jar文件添加到tomcat lib)。 配置您的context.xml,以便所有應用程序都知道全局資源。

<Context> 
    <WatchedResource>WEB-INF/web.xml</WatchedResource> 
    <ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/> 
</Context> 
+1

如果我將資源定義移動到server.xml的GlobalNamingResources部分,我會得到相同的結果:SEVERE:空組件Catalina:type = DataSource,path = /,host = localhost,class = javax.sql.DataSource, name =「jdbc/selfcare」 – 2011-05-13 20:11:51

+0

您是否更新過context.xml以鏈接到全局資源?你有沒有把oracle驅動程序放在tomcat庫中?你重新啓動了服務器嗎?重新部署你的應用程序?清理緩存? – 2011-05-13 20:13:14

+0

您是否已更新context.xml以鏈接到全局資源? >是的 你把oracle驅動程序放在tomcat庫中嗎? > YES,CATALINA_HOME/lib 您是否重新啓動服務器?是 重新部署您的應用程序? >沒有部署應用程序 清理緩存? >是的 – 2011-05-13 20:15:55

0

你的錯誤:user="xxxx",你需要寫username="xxxx"代替。