【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 Con...
·
问题描述
我们在做使用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添加这一段:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>JDBC/BBS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
相对应的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。
更多推荐
所有评论(0)