spring无法找到JNDI数据源

时间:2011-06-18 10:25:20

标签: spring tomcat datasource jndi

我正在开发一个spring web应用程序。我在我的应用程序中使用的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未绑定在此Context中

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

我建议您阅读Tomcat JNDI documentationthis