工作环境:WinXP+Tomcat5.5.16在server.xml中加入了:
<Context path="/quickstart" docBase="quickstart">
<Resource name="jdbc/quickstart" scope="Shareable" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/quickstart">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=CAT</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>1</value>
</parameter> <parameter>
<name>maxWait</name>
<value>30</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>1</value>
</parameter>
</ResourceParams>
</Context>在WEB-INF文件夹下有web.xml:
<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd"><web-app><resource-ref>
<description>connectDB test</description>
<res-ref-name>jdbc/quickstart</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<ResourceLink global="jdbc/quickstart" name="jdbc/quickstart" type="javax.sql.DataSource"/></web-app>有测试文件:
<%@ page import="java.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page import="javax.sql.*"%>
<%
Context initCtx = new InitialContext();
out.println("BBB::get jndi ok");
out.println("BBB::get datasource");
DataSource datasource = (DataSource) initCtx.lookup("java:comp/env/jdbc/quickstart");
out.println("BBB::get datasource OK");
out.println("BBB::get connection");
out.println("BBB::get connection");
Connection conn = datasource.getConnection();
out.println("BBB::get connection OK"+conn);
Statement stm = conn.createStatement();
out.println("get stm OK");
String sql = "select * from CAT";
ResultSet rs = stm.executeQuery(sql);
while(rs.next()){
out.println(rs.getString(1));
out.println("\n");
out.println(rs.getString(2));
}
%>显示结果:
org.apache.jasper.JasperException: Exception in JSP: /a.jsp:1916:
17: out.println("BBB::get connection");
18:
19: Connection conn = datasource.getConnection();
20:
21: out.println("BBB::get connection OK"+conn);
22: Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(root cause javax.servlet.ServletException: Cannot create JDBC driver of class '' for connect URL 'null'
root cause org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
请高手们指点,感谢了!
<Context path="/quickstart" docBase="quickstart">
<Resource name="jdbc/quickstart" scope="Shareable" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/quickstart">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=CAT</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>1</value>
</parameter> <parameter>
<name>maxWait</name>
<value>30</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>1</value>
</parameter>
</ResourceParams>
</Context>在WEB-INF文件夹下有web.xml:
<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd"><web-app><resource-ref>
<description>connectDB test</description>
<res-ref-name>jdbc/quickstart</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<ResourceLink global="jdbc/quickstart" name="jdbc/quickstart" type="javax.sql.DataSource"/></web-app>有测试文件:
<%@ page import="java.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page import="javax.sql.*"%>
<%
Context initCtx = new InitialContext();
out.println("BBB::get jndi ok");
out.println("BBB::get datasource");
DataSource datasource = (DataSource) initCtx.lookup("java:comp/env/jdbc/quickstart");
out.println("BBB::get datasource OK");
out.println("BBB::get connection");
out.println("BBB::get connection");
Connection conn = datasource.getConnection();
out.println("BBB::get connection OK"+conn);
Statement stm = conn.createStatement();
out.println("get stm OK");
String sql = "select * from CAT";
ResultSet rs = stm.executeQuery(sql);
while(rs.next()){
out.println(rs.getString(1));
out.println("\n");
out.println(rs.getString(2));
}
%>显示结果:
org.apache.jasper.JasperException: Exception in JSP: /a.jsp:1916:
17: out.println("BBB::get connection");
18:
19: Connection conn = datasource.getConnection();
20:
21: out.println("BBB::get connection OK"+conn);
22: Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(root cause javax.servlet.ServletException: Cannot create JDBC driver of class '' for connect URL 'null'
root cause org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
请高手们指点,感谢了!
解决方案 »
- thread(线程)中用spring注入不成功问题
- 关于上传html文件显示问题。。探讨下?
- 高手帮帮忙,憋的快休克了
- 女孩,如果不做软件了,做什么好?
- Hibernate 与 mysql 数据库连接自动断开问题求解
- jsp如何获取客户端的marc地址
- 求助add cookie
- tomcat4.0.4奇怪问题
- JAVA模拟客户端上传文件报错:Stream ended unexpectedly
- 流行框架Spring中Controller的mapping驼峰命名,而URL又最好都用小写,大家都是怎么解决这个冲突的
- Struts+Hibernate3+Oracle9 的中文问题!
- 我想请教一个关于单选,然后传递的问题!
DataSource datasource = (DataSource) initCtx.lookup("jdbc/quickstart");
try{}catch() 中去
另外:
你的JDBC驱动类包又没有 放到lib目录下面阿??