TOMCAT 连接池错误: javax.naming.NameNotFoundException: Name java: is not bound in this Context
server.xml
<Context path="/mytest" reloadable="true" docBase="D:\Java Workspace\mytest\WebRoot" workDir="D:\Java Workspace\mytest\work">
<Resource name="bean/sysprop" auth="Container" type="com.mod.MWSystemPropertyBean"
factory="org.apache.naming.factory.BeanFactory" langpath="D:/java workspace/mytest/WebRoot/properties/" />
<Resource name="jdbc/testConn"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mytest?autoReconnect=true&useUnicode=false&characterEncoding=UTF-8"
username="root"
password="aaa"
maxActive="500"
maxIdle="50"
maxWait="5000" />
</Context>
连接代码:
InitialContext ctx=new InitialContext();
Context envContext = (Context)ctx.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/testConn");
this.conn = ds.getConnection();
问题:当启动一个后台线程连接数据库时,偶尔会出现以下错误
javax.naming.NameNotFoundException: Name java: is not bound in this Context
at org.apache.naming.NamingContext.lookup(NamingContext.java:769)
at org.apache.naming.NamingContext.lookup(NamingContext.java:152)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
系统平时使用一样的连接代码都不会出现这个错误, 只是当我new 一个线程并在线程中连接数据库时,偶尔会出现,这个错误,大概是lookup这个函数找不到数据源,不知道有没有人遇到这个错误? 如何解决? 是否server.xml还需要加其它选项?