我正在努力在 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 库中)。
配置您的 context.xml 以便所有应用程序都知道全局资源。
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
</Context>
关于java - 如何在 Tomcat 6 中配置全局 JNDI 数据源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5997122/