以下是错误代码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:780)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
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:240)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:773)
... 19 moreserver.xml 代码 <Context path="/djrmail" docBase="djrmail" debug="0" reloadable="true">
<Resource name="jdbc/sqlserver" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/sqlserver">
<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:sqlserver://localhost:1433;DatabaseName=djrmail</value>
</parameter>
<parameter><name>username</name><value>sa</value></parameter>
<parameter><name>password</name><value>sa</value></parameter>
<parameter><name>maxActive</name><value>20</value></parameter>                             
<parameter><name>maxIdle</name><value>10</value></parameter>                             
<parameter><name>maxWait</name><value>-1</value></parameter>
</ResourceParams>
</Context>弄了一天了,也没找出来问题,驱动什么的都装了 数据库也打上sp4的补丁了 郁闷……

解决方案 »

  1.   

    设了啊
    第7行 <parameter> <name>driverClassName </name> 
    <value>com.microsoft.jdbc.sqlserver.SQLServerDriver </value> 
    </parameter>
      

  2.   

    解决方法:将如下格式的Resource描述插入server.xml的<Context></Context>中:<Resource name="jdbc/db" type="javax.sql.DataSource" username="sa" password="admin" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jspdev" maxActive="4"/>
      

  3.   

    server.xml改成这样了 也还不行
    <Context docBase="djrmail" path="/djrmail" reloadable="true" cookies="true" crossContext="true"  privileged="true" antiResourceLocking="false" antiJARLocking="false">     <Resource name="jdbc/sqlserver"
                  auth="Container"
                    type="javax.sql.DataSource"
                    driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
                    url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=djrmail"
                    username="sa"
                    password="sa"
                    maxIdle="10"
                    maxWait="100"
                    maxActive="20"/> </Context>
      

  4.   

    拷贝SQL servier JDBC包到tomcat下
      

  5.   

    已经考了还是不行,是不是tomcat版本问题
      

  6.   

    有可能是TOMCAT版本问题,版本不同配置也不同
      

  7.   

    你试试把这段代码
    <Context>    <!-- Default set of monitored resources -->
        <WatchedResource>WEB-INF/web.xml</WatchedResource>

        <!-- Uncomment this to disable session persistence across Tomcat restarts -->
        <!--
        <Manager pathname="" />
        -->
        <Resource name="jdbc/sqlserver"
                auth="Container"
                type="javax.sql.DataSource"
                username="sa"
                password="123"
                driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
                url="jdbc:sqlserver://127.0.0.1:1433;databaseName=duoduo"
                maxActive="8"
                maxIdle="4"/></Context>
    覆盖掉TOMCAT下的conf下的context.xml文件
      

  8.   

    驱动的版本对不对?将其拷贝到TOMCAT安装目录下试一试,看行不行?
      

  9.   

    将tomcat的server.xml文件中的有关DB连接池的代码用
    <Context>     <!-- Default set of monitored resources --> 
        <WatchedResource>WEB-INF/web.xml </WatchedResource>     <!-- Uncomment this to disable session persistence across Tomcat restarts --> 
        <!-- 
        <Manager pathname="" /> 
        --> 
        <Resource name="jdbc/sqlserver" 
                auth="Container" 
                type="javax.sql.DataSource" 
                username="sa" 
                password="123" 
                driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
                url="jdbc:sqlserver://127.0.0.1:1433;databaseName=duoduo" 
                maxActive="8" 
                maxIdle="4"/> </Context> 
    覆盖试试?
    或者在tomcat->conf->catalina->localhost->当前项目名.xml中将此段代码拷贝上,试试