2011-05-13 63 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"代替。

相关问题