Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 604|回复: 0

Cannot create JDBC driver of class '' for connect URL 'null'问题解决

[复制链接]
  • TA的每日心情
    奋斗
    2024-9-22 15:19
  • 签到天数: 795 天

    [LV.10]以坛为家III

    2050

    主题

    2108

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    724084
    发表于 2021-7-20 09:58:04 | 显示全部楼层 |阅读模式
     

    Cannot create JDBC driver of class '' for connect URL 'null'问题解决方法1

    严格来说也不叫错 只是不同的版本写法不一样
     
    tomcat-5.0.28是这种形式
    <Resource name="jdbc/conn" type="javax.sql.DataSource"/>
    <ResourceParams name="jdbc/conn">
    <parameter>
    <name>maxWait</name>
    <value>5000</value>
    </parameter>
    <parameter>
    <name>maxActive</name>
    <value>10</value>
    </parameter>
    <parameter>
    <name>password</name>
    <value>tiger</value>
    </parameter>
    <parameter>
    <name>url</name>
    <value>jdbc:oracle:thin:@localhost:oracle</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>scott</value>
    </parameter>
    </ResourceParams>
     
     
    但是apache-tomcat-6.0.32就得这种形式
    <Resource name="jdbc/conn" auth="Container" type="javax.sql.DataSource"
    maxActive="10" maxIdle="1" maxWait="5000"
    username="scott" password="tiger" driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/neusys"/>
     

    Cannot create JDBC driver of class '' for connect URL 'null'问题解决方法2

    1)启动Tomcat服务器,打开浏览器,输入http://localhost:8080/admin(其中localhost是名称服务器或称为主机),
    进入管理界面的登陆页面,这时候请输入原来安装时要求输入的用户名和密码,登陆到管理界面,

    2)选择Resources-Data sources进入配置数据源界面,选择
     Data Source Actions ->选择Create New Data Source,进入配置详细信息界面
    主要内容例如下:
    JNDI Name:   ->jdbc/mysql
    Data Source URL  ->jdbc:mysql://localhost:3306/test
    JDBC Driver Class-> org.gjt.mm.mysql.Driver
    3)修改\conf\Catalina\localhost目录下建立一个xml文件,名称为你所发布的web应用的名称.xml,(如testpool.xml)打开添加内容如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <Context>
     <Resource
          name="jdbc/mysql"
          type="javax.sql.DataSource"
          password="123456"
          driverClassName="org.gjt.mm.mysql.Driver"
          maxIdle="2"
          maxWait="50"
          username="root"
          url="jdbc:mysql://localhost:3306/test"
          maxActive="4"/>

    </Context>
    内容同conf/server.xml中<GlobalNamingResources>
     <Resource
          name="jdbc/mysql"
          type="javax.sql.DataSource"
          password="123456"
          driverClassName="org.gjt.mm.mysql.Driver"
          maxIdle="2"
          maxWait="50"
          username="root"
          url="jdbc:mysql://localhost:3306/test"
          maxActive="4"/>
      </GlobalNamingResources>

    少了这一步会报错:Cannot create JDBC driver of class '' for connect URL 'null'
    4)修改web.xml

    打开%TOMCAT_HOME%\conf\web.xml或yourwebapp/web-inf/web.xml,添加以下内容:
        <resource-ref>
        <description>DB Connection</description>
        <res-ref-name>jdbc/mysql</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
        </resource-ref>
        注意res-ref-name填写的内容要与在上文提到的JNDI Name名称一致。 
     到这里,配置工作就基本完成了!

    5)引用JNDI时用"java:comp/env/jdbc/mysql";
    建立文件测试 test.jsp:
    <%@page contentType="text/html;charset=utf-8" %>
    <%@page import="java.sql.*" %>
    <%@page import="javax.sql.*" %>
    <%@page import="javax.naming.*" %>
    <html>
    <head>
    <title>Tomcat连接池测试</title>
    </head>
    <body>
    <%
      Context ctx=new InitialContext();
      Connection conn=null;
      DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysql");
      conn=ds.getConnection();
      Statement stmt=conn.createStatement(ResultSet.CONCUR_READ_ONLY,ResultSet.CONCUR_UPDATABLE);
      ResultSet rs=stmt.executeQuery("select * from testexample");
      while(rs.next()){
      out.println(rs.getInt(1));
      out.println(rs.getString(2));
      out.println(rs.getString(3));
      }
      out.println("数据库操作成功!");
      rs.close();
      stmt.close();
      conn.close();
        
     %>
    </body>
    </html>

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-10-8 04:29 , Processed in 0.060426 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表