如何在Tomcat 6中配置全局JNDI数据源?

时间:2011-05-13 19:59:01

标签: java tomcat datasource

我正在努力在Tomcat 6.0.32中配置一个简单的JNDI池数据源。

我想在我的Web应用程序工件之外创建数据源定义。基本上我不希望我的应用程序知道访问数据库服务器的凭据。 我假设,像在Weblogic中一样,应该可以在Tomcat中创建一个“全局”JNDI数据源,但到目前为止我一直没有成功。

我尝试在CATALINA_HOME / conf / context中添加数据源定义:

<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"

任何指针都会受到赞赏。

2 个答案:

答案 0 :(得分:15)

将数据源配置移至server.xml <GlobalNamingResources>。 (并且不要忘记将驱动程序jar文件添加到tomcat lib)。 配置context.xml,以便所有Application都知道全局资源。

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

答案 1 :(得分:0)

您的错误:user="xxxx",您需要改为编写username="xxxx"