Cannot create JDBC driver of class '' for connect URL 'null'

Cannot create JDBC driver of classfor connect URL null如果你在使用jndi配置数据源的过程中反复出现下

Cannot create JDBC driver of class '' for connect URL 'null'

     如果你在使用jndi配置数据源的过程中反复出现下面的错误,而且你已经使用了很多方式都无法获取正确的数据源,那么就不要再浪费时间了,删除其他的配置方法按下面的方法进行配置,保证你能够有一个好使的数据源,

使用jndi的方式配置tomcat的数据源报了下面的错误:

org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at com.TestConn.doGet(TestConn.java:29)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

解决方法:这说明你的jdbc的数据源并没有被注册,jndi的数据源大致分两部:
第一步:配置web.xml文件
在你的项目的web.xml文件之中加入如下的配置:
<resource-ref>
  <description>DB Connection</description>
<!--这个就是你要连接的数据源名称webglDS_A6,下面的Context.xml文件中的数据源名称一定要和此名称一致-->
<res-ref-name>webglDS_A6</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
         </resource-ref>
第二步:配置Context.xml文件
Context.xml文件之中就是连接数据库的详细信息(注意是Context.xml而不是context.xml),这部分的设置有两种情况:
情况一:项目是通过eclipse视图部署到tomcat之中
这时,你只需要在META-INF目录下面建一个Context.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<!--下面的配置只是针对tomcat5.0 -->
<Resource name="webglDS_A6" type="javax.sql.DataSource" />
<ResourceParams name="webglDS_A6">
<parameter>
<name>auth</name>
<value>Container</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>password</name>
<value>1</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@10.11.112.80:1521:orcl</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>1</value>
</parameter>
<parameter>
<name>username</name>
<value>pay</value>
</parameter>
</ResourceParams>
<!-- tomcat6.0和tomcat7.0用下面的配置 
<Resource name="webglDS_A6" auth="Container" 
type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" 
username="pay" password="1" driverClassName="oracle.jdbc.driver.OracleDriver" 
url="jdbc:oracle:thin:@10.11.112.80:1521:orcl"/> -->
</Context>
    只是有一点tomcat5.0和tomcat6.0\7.0采用不同的设置,这一点无关紧要,下面就可以对数据源写一个jsp或者servlet进行测试,下面是主体代码,数据源名称为webglDS_A6
   Connection conn = null;
   Context ctx = null;
   ctx = new InitialContext();
   Context envContext = (Context) ctx.lookup("java:comp/env");
   DataSource ds = (DataSource) ctx.lookup("java:comp/env/webglDS_A6");
   // 取出连接
   conn = ds.getConnection();
情况二,项目直接以war包的形式部署到tomcat之中,这时候就需要在服务器的conf\Catalina\localhost目录下面建立以你的项目名称命名的xml文件,例如我的项目叫hh,那么文件名就应该叫hh.xml,建好之后的目录应该是这样的conf\Catalina\localhost\hh.xml
hh.xml文件的内容就是上述Context.xml文件的内容,只是在Conext节点加入下面的信息
<Context docBase="E:\123\jakarta-tomcat-5.0.28\webapps\hh" path="/hh" reloadable="true">
这样之后你的数据源就可用了。
总结一下:jndi的数据源配置分两步:配置web.xml和配置Context.xml,没有其他