我正在努力在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"
任何指针将不胜感激。
将数据源配置移动到server.xml <GlobalNamingResources>。(并且不要忘记将驱动程序jar文件添加到tomcat lib中)。配置您的context.xml,以便所有应用程序都知道全局资源。
<GlobalNamingResources>
<Context> <WatchedResource>WEB-INF/web.xml</WatchedResource> <ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/> </Context>