日期:2014-05-17  浏览次数:20657 次

求救!使用JDNI时,报 Cannot create JDBC driver of class '' for connect URL 'null'
我用的tomcat版本是6.0
为了避免修改Tomcat中的配置文件,所以我在项目的META-INF文件下的新建了context.xml文件中的配置如下:
<Context > 
    <Resource 
    name="jdbc/TaskDB"  
    auth="Container" 
    type="javax.sql.DataSource"
    username="dbconn"
    password="DMLQdbconn" 
    driverClassName="com.mysql.jdbc.driver"
    url="jdbc:mysql://192.168.11.166:63306/logdb_tvg" 
    maxActive="8"
    maxIdle="4" 
    maxWait ="6000"  
    /> 
</Context> 

在项目中web.xml文件中的配置如下:
<resource-ref> 
    <res-ref-name>jdbc/TaskDB</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth> 
  </resource-ref> 

程序中的调用如下:
Connection con = null;   
        try {
            //JNDI资源命名服务的入口点
            Context ctx = new InitialContext();
            DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/TaskDB");
            con = ds.getConnection();
        } catch (NamingException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }   

在项目中的lib下也加入了commons-collections-3.0.jar      commons-dbcp.jar        commons-pool-1.4.jar    mysql-connector-java-5.1.13-bin.jar
可是就是会出现上面的这个错误,
哪位兄弟姐妹帮忙看一下吧
------最佳解决方案--------------------
 driverClassName="com.mysql.jdbc.driver"


这个连接串写错了。。driver应该大写称Driver
------其他解决方案--------------------
驱动貌似没加载的样子


------其他解决方案--------------------
可是驱动已经放在lib包下了
------其他解决方案--------------------
  DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/TaskDB");
  con = ds.getConnection();

调试查看这两个对象是否已经获得指定数据库连接
------其他解决方案--------------------
连接串问题已经解决了,但是还是报错啊
------其他解决方案--------------------
引用:
DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/TaskDB");
  con = ds.getConnection();

调试查看这两个对象是否已经获得指定数据库连接


这两句语句没有执行到,我的估计是,可能确实是配置文件出了问题,容器在实例化的对象的时候,可能是这个时候,就报错了
------其他解决方案--------------------
放弃DataSource了,换了个proxool连接池
------其他解决方案--------------------