现在问题的错误是
javax.servlet.ServletException: Cannot create JDBC driver of class '' for connect URL 'null'

解决方案 »

  1.   

    在\Tomcat 5.0\conf\Catalina\localhost\下面你的工程的对应的xml文件里面加入
      <ResourceLink name="***" type="javax.sql.DataSourcer" global="***"/>
    ***为你配置的JNDI
      

  2.   

    第四步没有必要
    另外你的程序中bound Context了吗?
    从“Name jdbc is not bound in this Context”可以看出
    这一句有吗?Context ctx = new InitialContext();
    DataSource ds =(DataSource)ctx.lookup("java:comp/env/jdbc/SqlServerDB");
    con = ds.getConnection().....;"javax.servlet.ServletException: Cannot create JDBC driver of class '' for connect URL 'null'"这个错误与jdbc driver配置有关,注意路径
      

  3.   

    目前的情况是
    首先我配置%tomcathome%/conf/server.xml
    然后我写了一个页面如下:
    <%@ page contentType="text/html;charset=gb2312"%> 
    <%@ page import="javax.naming.Context"%> 
    <%@ page import="javax.sql.DataSource"%>
    <%@ page import="javax.naming.InitialContext"%> 
    <%@ page import="java.sql.*"%>  
      
    <%
    DataSource ds = null;
    try{
    Context initCtx = new InitialContext();
    Context envCtx = (Context)initCtx.lookup("java:comp/env");
    ds = (DataSource)envCtx.lookup("jdbc/connectDB");
    if(ds!=null){
    out.println("get DataSource");
    out.println("<br>");
    Connection conn = ds.getConnection();
    Statement stmt = conn.createStatement();
    ResultSet rst=stmt.executeQuery("select * from plc_LadingInfo_mb");
    out.println("next is data from database");
    while(rst.next()) { %> 
    您的字段内容为:<%=rst.getString(3)%> <% }
    }
    else out.println("failed");
    }
    catch(Exception ne)
    {
    out.println(ne);
    }
    %>
    运行时页面显示为:
    get DataSource 
    org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
      

  4.   

    url应该是没有问题的,因为如果不采用连接池,直接全写在jsp页面里的时候,是可以成功访问数据库的。而且页面输出了get DataSource,所以应该是这几行出了问题
    Connection conn = ds.getConnection();
    Statement stmt = conn.createStatement();
    ResultSet rst=stmt.executeQuery("select * from plc_LadingInfo_mb");
    请高手指点
      

  5.   

    就是到这里出的错Connection conn = ds.getConnection();
    我在server.xml里面配置如下
    <Context path="/m5" docBase="m5" debug="0" reloadable="true" crossContext="true">

    <Resource name="jdbc/connectDB" auth="Container" type="javax.sql.DataSource"/>
    <ResourceParams name="jdbc/connectDB">
    <parameter>
    <name>factory</name>
    <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>
    <parameter>
    <name>driverClassName</name>
    <!-- Database Driver Class Name -->
    <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
    </parameter>
    <parameter>
    <name>url</name>
    <!-- Database Address -->
    <value>jdbc:microsoft:sqlserver://M5TEMPSERVER:1433;DatabaseName=M5</value>
    </parameter>
    <parameter>
    <name>username</name>
    <!-- Database User Name -->
    <value>sa</value>
    </parameter>
    <parameter>
    <name>password</name>
    <!-- User Password -->
    <value>7554</value>
    </parameter>
    <parameter>
    <name>maxActive</name>
    <!-- Maximum number of DB connections in pool.Set to 0 for no limit. -->
    <value>50</value>
    </parameter>
    <parameter>
    <name>maxIdle</name>
    <!-- Maximum number of idle DB connections to retain in pool.Set to 0 for no limit. -->
    <value>10</value>
    </parameter>
    <parameter>
    <name>maxWait</name>
    <!-- Maximum time to wait for a DB connection to become available in ms.An exception is thrown if this timeout is exceeded.Set to -1 to wait indefinitely. -->
    <value>-1</value>
    </parameter>
    </ResourceParams>
    </Context>