1.在tomcat中找到conf文件下的context.xml文件加入如下内容(本人用的是MySql数据库):
<Resource
name="tomcatDS"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/jdbctest"
username="root"
password="wwh"
maxActive="8"
maxIdle="4" />
注意这个内容应该放在<context>的标签内部
2.测试一个jndi的一个servlet
public class JndiServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
try {
//创建具体Web服务器的JNDI对象
Context context = new InitialContext();
//远程查找Web服务器
Context tomcatContext = (Context) context.lookup("java:comp/env");
//在Web服务器内远程查找DBCP连接池服务
DataSource ds = (DataSource) tomcatContext.lookup("tomcatDS");
//从DBCP连接池中取得一个空闲的连接
Connection conn = ds.getConnection();
//显示结果
if(conn!=null){
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write("取得连接");
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
如果出现了Name tomcatDS is not bound in this Context异常 则说明,在tomcat 中并未配置jndi