解决javax.naming.NameNotFoundException: Name jdbc is not bound in this Context

时间:2024-03-25 15:08:45

在tomcat中发布web项目,可能是因为spring中配置了jndi(只配置了jndi,其他的有工具包封装了)。
启动的时候报错(在项目目录下,在tomcat中配置context指向项目目录就没问题,打包发布到
tomcat就报错了),抛的异常是:
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context

在web.xml中添加配置如下:
<resource-ref>
  <description>DB Connection</description>
  <res-ref-name>jdbc/test</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>

如我工程文件要用到2个数据库,修改后为

<Context docBase="C:/Users/Administrator/workspace/TICS/src/TICS/WebContent" path="/tics" reloadable="true">

                <Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" maxActive="100" maxIdle="30" maxWait="10000" name="jdbc/ngodTICSDB" password="tics" type="javax.sql.DataSource" url="jdbc:oracle:thin:@10.0.0.217:1521:bms" username="tics"/>

                <Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" maxActive="100" maxIdle="30" maxWait="10000" name="jdbc/ngodTICSHtySDB" password="ticshty" type="javax.sql.DataSource" url="jdbc:oracle:thin:@10.0.0.217:1521:bms" username="ticshty"/>

        </Context>

 

 

是用eclipse开发是要注意,在添加tomcat服务器的时候要选择实用自己service.xml,不然该段配置不会起作用,仍然会报相关错误,具体设置如下解决javax.naming.NameNotFoundException: Name jdbc is not bound in this Context