簡介
今天接手中行一個交通罰款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,否則也會報同樣的錯誤