【JavaWeb问题解决】javax.naming.NameNotFoundException: Name jdbc is not bound in this Context 的问题

问题描述

我们在做使用JavaWeb内置连接池获取数据源的时候,遇到了这种错误:
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context;
javax.naming.NameNotFoundException: Name [jdbc/TomcatPool] is not bound in this Context. Unable to find [jdbc].
翻译过来大概是说创建的JNDI容器中没有该名称,也就是说在JNDI容器中搜索不到特定名称的数据源。

解决办法

web工程下的,WEB-INF下的web.xml添加这一段:

 
    DB Connection
    JDBC/BBS
    javax.sql.DataSource
    Container
  
相对应的jsp或者java代码应该为:
DataSource ds = (DataSource) ctx.lookup("java:comp/env/JDBC/TestDB");
或者
Context envCtx = (Context) ctx.lookup("java:comp/env");
DataSource ds = (DataSource) ctx.lookup("JDBC/TestDB");

不配置,或者配置错误,就会出现:Name jdbc is not bound in this Context,如果配置成 JDBC/BBS3,则会报Name jdbc is not bound in this Context。

你可能感兴趣的:(javaweb)