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

一只鬼 2015-10-12 11:30:50
是这样的 我正在学习java 现在要配置连接池 我的tomcat是7.0.63
按照书上的在server.xml中的Engine下的host里这样配置
<Context path="/ebaoyang" docBase="C:/java/ebaoyang/ebaoyang/WebContent" reloadable="true">
<Resource name="jdbc/mysqldb"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxldle="30"
maxWait="10000"
username="root"
password=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/CarTypeInfo"/>
</Context>
然后就一直那个错误了,怎么解决?是我配置错了吗
...全文
503 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuangqingch 2015-10-15
  • 打赏
  • 举报
回复
引用 9 楼 YKPkaiping 的回复:
[quote=引用 8 楼 zhuangqingch 的回复:] [quote=引用 7 楼 YKPkaiping 的回复:] 没人吗
一、先说下你的问题吧: 看了下你的配置配置,如果你的context配置是配置在tomcat安装目录下的context.xml或server.xml,则你的配置无问题,而出现问题的原因可能是IDE导致: IDE中配置tomcat启动项目时,会自己copy一份tomcat的配置来使用,部分ide copy可能存在问题,如IDEA中配置在server.xml的host标记中的context会无法正常copy。导致连接池配置没copy到,导致问题的出现。 如果你的context是配置在自己的项目当中,就有可能出问题(允许在项目中配置,但可能被你配置错了) 二、下面是关于采用jndi方式配置tomcat的连接池配置关键点 1、需要在context中配置连接池参数(driver,url等) 2、在项目中引用该配置 上述配置完成后,即可通过API获取数据源。 针对上述2个关键点,引用那块就不说明了,通常都是在web.xml配置一下。对于第1个关于context的配置,这块有多种配置方式,如早期的直接在server.xml中配置,后后来从server.xml抽取出来独立出一个context.xml配置。当然,还可以在项目中配置(/META-INF/context.xml),各种配置方式主要是在灵活性、作用范围上有些差异,如哪些可以热加载,哪些只作用于某个程序等。关于Context的定义相关内容可以参考官方提供的文档,地址如下: Defining_a_contex 如果不习惯看英文,也可以参考这篇博文: 配置Tomcat的<Context>元素[/quote] 那你说的在(/META-INF/context.xml)中配置和在tomcat的server.xml或context.xml中配置是一样的?可我就在(/META-INF/context.xml)这里配置才能连接上,而在server.xml或context.xml中都报这个错误 就因为IDE?没太明白,你可以再解释解释吗[/quote] 简单理解,tomcat他本身就是一个独立的web服务器,服务器自己拥有一些配置文件,可根据需求进行相关参数调整。而在一些IDE(如eclipse,myeclipse,IDEA等)中,为方便你的web开发工作,可以通过IDE进行环境搭建将tomcat集成进IDE中。大部分情况下,为了不影响tomcat自身的相关参数配置,IDE都会自己生成(或者复制)一份新的关键配置(server.xml,context.xml等)。除了参数配置文件外,当你需要发布你的项目时(项目部署进tomcat中),你会发现,在你本地安装的tomcat的webapps目录下通常会找不到对应的项目。原因是IDE已经在帮你放到了硬盘的其他地方(都是可配置的,IDE生成的配置文件中会帮你记录)。 当你在IDE中启动tomcat时,启动的是你本地安装的tomcat,但使用的参数配置文件,却是IDE自己生成的配置。 如果你用的是eclipse的话,可以参考下以下文章: 配置Tomcat时server.xml和content.xml自动还原问题 更改Eclipse下Tomcat的部署目录
一只鬼 2015-10-15
  • 打赏
  • 举报
回复
引用 8 楼 zhuangqingch 的回复:
[quote=引用 7 楼 YKPkaiping 的回复:] 没人吗
一、先说下你的问题吧: 看了下你的配置配置,如果你的context配置是配置在tomcat安装目录下的context.xml或server.xml,则你的配置无问题,而出现问题的原因可能是IDE导致: IDE中配置tomcat启动项目时,会自己copy一份tomcat的配置来使用,部分ide copy可能存在问题,如IDEA中配置在server.xml的host标记中的context会无法正常copy。导致连接池配置没copy到,导致问题的出现。 如果你的context是配置在自己的项目当中,就有可能出问题(允许在项目中配置,但可能被你配置错了) 二、下面是关于采用jndi方式配置tomcat的连接池配置关键点 1、需要在context中配置连接池参数(driver,url等) 2、在项目中引用该配置 上述配置完成后,即可通过API获取数据源。 针对上述2个关键点,引用那块就不说明了,通常都是在web.xml配置一下。对于第1个关于context的配置,这块有多种配置方式,如早期的直接在server.xml中配置,后后来从server.xml抽取出来独立出一个context.xml配置。当然,还可以在项目中配置(/META-INF/context.xml),各种配置方式主要是在灵活性、作用范围上有些差异,如哪些可以热加载,哪些只作用于某个程序等。关于Context的定义相关内容可以参考官方提供的文档,地址如下: Defining_a_contex 如果不习惯看英文,也可以参考这篇博文: 配置Tomcat的<Context>元素[/quote] 那你说的在(/META-INF/context.xml)中配置和在tomcat的server.xml或context.xml中配置是一样的?可我就在(/META-INF/context.xml)这里配置才能连接上,而在server.xml或context.xml中都报这个错误 就因为IDE?没太明白,你可以再解释解释吗
一只鬼 2015-10-14
  • 打赏
  • 举报
回复
没人吗
zhuangqingch 2015-10-14
  • 打赏
  • 举报
回复
引用 7 楼 YKPkaiping 的回复:
没人吗
一、先说下你的问题吧: 看了下你的配置配置,如果你的context配置是配置在tomcat安装目录下的context.xml或server.xml,则你的配置无问题,而出现问题的原因可能是IDE导致: IDE中配置tomcat启动项目时,会自己copy一份tomcat的配置来使用,部分ide copy可能存在问题,如IDEA中配置在server.xml的host标记中的context会无法正常copy。导致连接池配置没copy到,导致问题的出现。 如果你的context是配置在自己的项目当中,就有可能出问题(允许在项目中配置,但可能被你配置错了) 二、下面是关于采用jndi方式配置tomcat的连接池配置关键点 1、需要在context中配置连接池参数(driver,url等) 2、在项目中引用该配置 上述配置完成后,即可通过API获取数据源。 针对上述2个关键点,引用那块就不说明了,通常都是在web.xml配置一下。对于第1个关于context的配置,这块有多种配置方式,如早期的直接在server.xml中配置,后后来从server.xml抽取出来独立出一个context.xml配置。当然,还可以在项目中配置(/META-INF/context.xml),各种配置方式主要是在灵活性、作用范围上有些差异,如哪些可以热加载,哪些只作用于某个程序等。关于Context的定义相关内容可以参考官方提供的文档,地址如下: Defining_a_contex 如果不习惯看英文,也可以参考这篇博文: 配置Tomcat的<Context>元素
一只鬼 2015-10-13
  • 打赏
  • 举报
回复
把DataSource设置到我们的WEB项目中和把DataSource设置到我们的Tomcat中这两个算两种配置连接池吗?
在tomcat的context.xml中配置连接池 不也需要在web项目里也要有个context.xml吗
即使不在tomcat的context.xml中配置连接池 只在项目中添加context.xml文件也是可以的 可网上很多都是在server.xml或context.xml中配置 而没在项目中加Resource 那就一直连不上 能帮忙解释下吗
一只鬼 2015-10-13
  • 打赏
  • 举报
回复
Context c=new InitialContext();
Context envContext=(Context) c.lookup("java:/comp/env");
DataSource ds=(DataSource)envContext.lookup("jdbc/mysqldb");

web.xml中的
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/mysqldb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
tomcat的server.xml文件中的
<Context path="/ebaoyang" docBase="C:/java/ebaoyang/ebaoyang/WebContent" reloadable="true">
<Resource name="jdbc/mysqldb"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxldle="30"
maxWait="10000"
username="root"
password=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/CarTypeInfo"/>
</Context>
zhuangqingch 2015-10-12
  • 打赏
  • 举报
回复
引用 3 楼 Lockly扬的回复:
楼上您说的在web.xml里我有写了,还是提示那个错误
从异常信息上看是读取不到你的配置,你贴下你的引用配置和数据源获取的代码吧,我帮你看下。另外您字太重啦,都是技术交流,不用太客气
一只鬼 2015-10-12
  • 打赏
  • 举报
回复
楼上您说的在web.xml里我有写了,还是提示那个错误
zhuangqingch 2015-10-12
  • 打赏
  • 举报
回复
楼主应该是做了配置后,没有做“引用”。可以在web.xml配置下数据源配置引用,如下:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<description>MySQL Test App</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/mysqldb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>

tomcat jdbc连接池的配置实例,可以参考:
http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html#MySQL_DBCP_Example

配置相关的可以参考:
http://tomcat.apache.org/tomcat-7.0-doc/jndi-resources-howto.html#UserDatabase_Resources

接口及相关参数等总体介绍可以参考:
https://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html

PS:论坛的输入插件是不是出问题的。只有一个输入框,基础啥都没了。
一只鬼 2015-10-12
  • 打赏
  • 举报
回复
顶一下!!!!!!

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧