请赐教,不甚感激
我用的是tomcat6.0.26+mysql5.0.22配置数据源,
结果报出如下异常:
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1150)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at org.apache.jsp.test_jsp._jspService(test_jsp.java:75)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:507)
at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:476)
at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307)
at java.sql.DriverManager.getDriver(DriverManager.java:253)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1143)
... 20 more已经在context.xml文件下加了如下配置:
<Resource name="jdbc/et"  auth="Container" type="javax.sql.DataSource" 
    password="shelingdan" username="root"  
    driverClassName="org.gjt.mm.mysql.Driver"  
    url="jdbc:mysql://localhost:3306/superet"  
    maxActive="100"  maxIdle="30"  maxWait="5000"/> 
并在工程应用中WEB-INF文件下加了如下配置:
<resource-ref> 
    <description>MySQL DataSource</description> 
     <res-ref-name>jdbc/et</res-ref-name> 
     <res-type>javax.sql.DataSource</res-type> 
     <res-auth>Container</res-auth> 
</resource-ref>
我的测试程序如下:
<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.sql.*"%> 
<%@ page import="javax.naming.Context"%> 
<%@ page import="javax.naming.InitialContext"%> 
<%@ page import="javax.sql.DataSource"%> 
<html> 
<body> 
<%
//Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
//String url = "jdbc:mysql://localhost:3306/sample?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"; 
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/et");
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;try{ 
conn = ds.getConnection();
out.println("conn is:"+conn+"<br/>");
//testDB为你的数据库名 
//Connection conn= DriverManager.getConnection(url); 
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
String sql="select * from goodsmessage "; 
rs=stmt.executeQuery(sql); 
while(rs.next()) { 
out.print("您的第一个字段内容为:"+rs.getString(1)+"<br/>"); 
out.print("您的第二个字段内容为:"+rs.getString(2)+"<br/>"); 
}
out.print("数据库操作成功,恭喜你");
}catch(Exception e) 
{ e.printStackTrace();
}finally { 
// Always make sure result sets and statements are closed, 
// and the connection is returned to the pool 
if (rs != null) { 
try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } 
rs = null; 

if (stmt != null) { 
try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } 
stmt = null; 

if (conn != null) { 
try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } 
conn = null; 

}
%> 
</body> 
</html>