spring找不到JNDI数据源



我正在开发一个springweb应用程序。我在应用程序中使用的一个JAR文件正在使用JNDI查找DataSource。我在tomcat的server.xml中配置了这个元素。配置如下,

<GlobalNamingResources>
  <Resource name="jdbc/abcd" 
            auth="Container" 
            type="javax.sql.DataSource" 
            maxActive="70"
            maxWait="10000" 
            username="xxxx" password="yyyy" 
            validationQuery="SELECT 1 from dual"
            driverClassName="oracle.jdbc.driver.OracleDriver" 
            url="jdbc:oracle:thin:@xx.xxx.xx.xx:xxxx:zzzz"
            testOnBorrow="false"
            testOnReturn="false"
            testWhileIdle="true"
            timeBetweenEvictionRunsMillis="120000"
            minEvictableIdleTimeMillis="3600000"
  />
</GlobalNamingResources>

上面配置的资源名称"jdbc/abcd"与JAR正在查找的名称相同,但是它找不到这个配置的数据源。有人知道可能是什么原因吗?

我收到以下异常,

javax.naming.NameNotFoundException:名称jdbc未在此上下文中绑定

您需要在web应用程序上下文中定义一个ResourceLink,使全局资源对web应用程序可见。

<ResourceLink 
        name="nameThatIsVisibleToTheWebApplication"
        global="theGlobalName"
        ...

您需要做的不仅仅是配置Spring。

我建议阅读TomcatJNDI文档和这篇文章。

最新更新