tomcat JNDI配置

来源:互联网 发布:问道1.57绑定端口失败 编辑:程序博客网 时间:2024/06/07 03:08

1.添加mysql驱动到lib目录下
2.配置/conf/context.xml,

<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"               maxActive="100" maxIdle="30" maxWait="10000"               username="root" password="1995" driverClassName="com.mysql.jdbc.Driver"               url="jdbc:mysql://localhost:3306/java"/>

不知道为什么,网上很多人说配置到server.xml里面,然后还要在web.xml里面引用jndi,但是我试过了,结果出现错误
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class ” for connect URL ‘null’
后来才知道,还有一项工作忘记做了
映射JNDITest项目的虚拟目录

  在tomcat的\conf\Catalina\localhost下(没有目录就新建)创建一个xml文件,文件名必须和项目名相同,测试JNDI数据源的web项目的项目名称是:JNDITest,所以xml文件的命名就叫JNDITest.xml,如下图所示:
  编辑JNDITest.xml,配置如下:

 <?xml version="1.0" encoding="UTF-8"?> 2 <!-- 3     jndi配置方法(tomcat): 4     将此文件放置在tomcat\conf\Catalina\localhost下(没有目录就新建) 5  --> 6 <!--映射JNDITest项目的虚拟目录--> 7 <Context docBase="D:/MyEclipse8.5/workspace/JNDITest/WebRoot" debug="0" reloadable="false"> 8     <!--引用Oracle数据库的JNDI数据源--> 9     <ResourceLink name="oracleDataSource" global="jdbc/oracle" type="javax.sql.DataSource"/>10     <!--引用mysql数据库的JNDI数据源-->11     <ResourceLink name="mysqlDataSource" global="jdbc/mysql" type="javax.sql.DataSource"/>12     <!--引用sqlserver数据库的JNDI数据源-->13     <ResourceLink name="sqlserverDataSource" global="jdbc/sqlserver" type="javax.sql.DataSource"/>14 </Context>

可以看出,配置在server.xml里面太麻烦,还不如直接配置在context.xml里面呢,所以这种效率低下的配置方法不仅让人觉得麻烦,而且有些博主在引用别人的文章的时候,可能自己都没有实际的做过,省掉了一些环节,结果我们搜到他的文章按照他的去做就会失败,然后为了一个配置的问题大伤脑筋,完全没有必要吗,这种配置方法就是垃圾配置,就应该丢到垃圾堆里面,彻底忘掉

配置在context.xml里面才是最方便的
在web.xml中配置指定的资源名称(不是必须的)

3.建立一个测试程序

<%@ page language="java" contentType="text/html; charset=GB18030"    pageEncoding="GB18030"%><%@ page import="java.sql.*,javax.sql.*,javax.naming.*" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=GB18030"><title>Insert title here</title></head><body><%String NAME="java:comp/env/jdbc/mysql";Context ctx = new InitialContext();DataSource ds = (DataSource)ctx.lookup(NAME);Connection con=ds.getConnection(); %><%=con%><%con.close(); %></body></html>
0 0
原创粉丝点击