在conf/context.xml中加入:
<Resource name="Jdbc/TestDBCP" scope="Shareable" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="scott" password="123456" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:Fantasy"/>
测试程序:
新建一个Web Project,在WebRoot中新建一个jsp文件:
写下以下测试代码:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ page import="javax.naming.*,javax.sql.*,java.sql.*;" %>
<%
out.println("我的测试开始");
DataSource ds = null;
InitialContext ctx;
Connection conn = null;
try {
ctx = new InitialContext();
ds = (DataSource) ctx.lookup("java:comp/env/Jdbc/TestDBCP");
conn = ds.getConnection();
out.println(conn);
} catch (NamingException e1) {
e1.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
//将Connection放回连接池
conn.close();
}
%>
output:
我的测试开始
jdbc:oracle:thin:@localhost:1521:Fantasy, UserName=scott, Oracle JDBC driver
打印出以上代码表示配置成功。
采用此种方法在Tomcat的WebApps下的项目都能访问到此数据源,如果想单独给某个项目使用可以把此context.xml剪切到项目的META-INF下。
查找数据源是先从conf下的context.xml查找,如果找不到则到本项目的context.xml中查找(如果存在),如果都找不到则抛出
javax.naming.NameNotFoundException: Name DRPd1 is not bound in this Context 异常
这种方法不用配置web.xml,如果有不同见解请留言探讨,谢谢。