Name jdbc is not bound in this Context

简介

  今天接手中行一个交通罚款web工程时,从svn同步下来后,,启动竟然报找不到数据源错误,本来以为很简单解决找了两个小时,现在记录下来。

Exception: Name jdbc is not bound in this Context'
这个错误网络上一大堆。

1、WEB-INF里的web.xml文件中没有以下配置或者是配置错误:

<resource-ref>
<description>jdbc/oracleds</description>
<res-ref-name>jdbc/oracleds</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

2、我们在Tomcat安装文件中找到 conf/context文件并打开, 在这里,我以我用的Oracle数据库
来配置。

<Resource name='jdbc/oracleds' auth='Container' type='javax.sql.DataSource'
maxIdle='30' maxActive='10' maxWait='1000' username='scott' password='113416'
driverClassName='oracle.jdbc.OracleDriver'
url='jdbc:oracle:thin:@127.0.0.1:1521:SNAIL'/>

而在WEB-INF文件下的 web.xml中,我们配置
<resource-ref></resource-ref> 的信息必须与Tomcat中的配置信息一一对应。
例如:
在Tomcat中配置的name='jdbc/oracleds' ,而在 web.xml文件中配置的name='jdbc/oracled'都会引起
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context 错误提示! 

3、在spring配置文件中引用jdbc/oracleds时,应该前面加上java:comp/env/,全名为java:comp/env/jdbc/oracleds,否则也会报同样的错误

原文地址:https://www.cnblogs.com/520playboy/p/6250748.html