Junit测试的时候连接数据库成功,但是在服务器上运行时,连接数据库失败

article/2025/9/27 0:37:30

Junit测试的时候连接数据库成功,能添加记录
但是启动服务器通过表单提交到servlet,连接数据库失败

报错如下:

十二月 11, 2018 4:35:48 下午 com.mchange.v2.c3p0.DriverManagerDataSource ensureDriverLoaded
警告: Could not load driverClass com.mysql.jdbc.Driver
java.lang.ClassNotFoundException: com.mysql.jdbc.Driverat org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1275)at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1104)at java.lang.Class.forName0(Native Method)at java.lang.Class.forName(Class.java:264)at com.mchange.v2.c3p0.DriverManagerDataSource.ensureDriverLoaded(DriverManagerDataSource.java:100)at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:132)at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)at com.mchange.v2.async.ThreadPerTaskAsynchronousRunner$TaskThread.run(ThreadPerTaskAsynchronousRunner.java:255)十二月 11, 2018 4:35:48 下午 com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask run
警告: com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@5361e6f4 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: 
java.sql.SQLException: No suitable driverat java.sql.DriverManager.getDriver(DriverManager.java:315)at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:223)at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)at com.mchange.v2.async.ThreadPerTaskAsynchronousRunner$TaskThread.run(ThreadPerTaskAsynchronousRunner.java:255)

项目结构如下图

注意:图上的web.xml放错位置了,正常是在WE-INF目录下的。初学弄错了,放在lib目录下了。

原因:该项目是一个web项目,而且这个mysql-connector-java-5.1.12-bin.jar位置不再项目内,只是引用了本地的jar,junit测试时类加载器找的是本地的jar包,所以能找到这个jar包。但是web项目它最终不是通过本地的JRE去运行,而是部署到web 服务器,如Tomcat、Weblogic、WebSphere等,这些服务器都实现了自身的类加载器。比如tomcat应用服务器,它有其自己的类加载器,根据J2EE的规范去%web-project%/WEB-INF/lib的规范去找相应的lib 。所以在服务器上运行时找不到mysql-connector-java-5.1.12-bin.jar,连接数据库失败。

解决方案:将mysql-connector-java-5.1.12-bin.jar包copy到web-inf/lib文件夹下面,然后build path即可。

 

 

 


http://chatgpt.dhexx.cn/article/bTKbbFVf.shtml

相关文章

大大大大数怎么求余?C语言

问题: 一个特别大的数除以23求余数用C语言应该怎么算啊?比如23232323232323232323232323232323232323232323232323232323233除以23,怎么算余数? 数据类型在计算机的存储是有大小限制的,所以才出现了大数求余这种问题&a…

求整数的余数C语言,c语言求整数余数 大一C语言作业. 编写程序输入两个整数,输出它们的商和余数。...

c语言中怎样取余数 C语言提供了一个取余数的运算符%,称之为“模”运算符。只有两个整数之间才可以进行模运算!a%b 表示 用b来整除a,商整数,得到余数。如:5%324%313%30 在 C语言中 取整 , 求余的符号各是什么…

c语言求余的方法,c语言求余的实现方法_后端开发

python语言是由哪个人创造的_后端开发 python语言是由荷兰人“Guido van Rossum”在1989年的时候创造出来的一种面向对象的解释型高级编程语言,并将其命名为“Python”,Python有着简单、开发速度快、节省实际和容易学习等特点。 c语言求余的实现方法 求余…

C语言散列法求英文字母字符串求余,c语言求余数

he00692694 2012.10.13 采纳率:48% 等级:13 已帮助:6711人 #include #include void main() { int num,num2;//这里改了 printf(\\"Please input two number:\\"); scanf(\\"%d%d\\",&num,&num2); printf(\\…

C语言-关于求余

求余是一种数学计算方法,指一个数除以另一个数,不够除的部分就是余数,就是求余的结果。整除就是一个数除以另一个数,刚刚好的倍数,这里没有四舍五入,不够一倍的都将舍去。 一、求余负数 求余一个负数 验…

Docker Desktop 安装使用教程

系列文章: 一分钟教会你使用Docker Desktop搭建RocketMQ–巨简单 30秒完成在Docker Desktop中搭建kafka----你肯定没我快 在Docker中搭建 prometheus(普罗米修斯)这个大佬 来来来,咱统计一下Docker常用命令 什么?…

docker安装步骤

目录 一、docker安装步骤 Ⅰ、官方安装文档 Ⅱ、具体安装步骤 一、docker安装步骤 Ⅰ、官方安装文档 Install Docker Engine | Docker Documentation Ⅱ、具体安装步骤 1、卸载原来安装过的docker,如果没有安装可以不需要卸载 yum remove docker \docker-cli…

Docker环境安装

本文介绍yum与二进制两种环境部署方式,二选一即可。 一、yum安装 若有旧版本docker需要使用以下命令卸载: sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-eng…

Docker buildx 安装

文章目录 推荐简介开启实验室特性安装docker buildx安装模拟器Build多平台image问题及解决方法问题一问题二 参考链接 推荐 欢迎关注公众号9500后,围观技术、生活和日常。 简介 Docker buildx是docker的一个插件,它包含如下作用: 支持Mob…

Docker安装MySQL

目录 前言 一、拉取镜像 二、查看镜像 三、运行镜像 四、查看正在运行的容器 五、查看容器内部 六、修改mysql配置 七、重启mysql服务,使其配置生效 八、设置docker启动时启动mysql 九、重启mysql 十、授权远程访问 10.1 进入容器内部 10.2 登陆mysql 10.…

docker安装rabbitmq

1.准备 需要安装好docker环境,可以阅读文章在Centos和Redhat上安装Docker_小帅虎丶丿的博客-CSDN博客 学习如何安装docker 需要安装docker-compose,了解yaml格式文件的编写以及一些常用的docker-compose的属性,可以参考文章 需要会使用dockerfile构建…

Docker中安装宝塔

1、docker拉取ubuntu系统 docker pull ubuntu 2、运行容器 docker run -i -t -d --name bt -p 2000:20 -p 2100:21 -p 8000:80 -p 4430:443 -p 8880:888 -p 8888:8888 --privilegedtrue -v /d/baota:/www/wwwroot ubuntu -v后的/d/baota代表本地D盘的baota目录与ubuntu系统…

Win7安装Docker

Win7安装Docker 下载安装包为:DockerToolbox.exe下载docker的win安装工具 如果是win10系统,可以直接去docker官网下载docker for windows;如果不是,为了避免乱七八糟的错误,建议直接去阿里云下载老一点的版本&#xf…

Docker下安装Redis超详细步骤

查看需要安装的镜像版本 dockerHub官网地址 搜索reids 2.点击标签 3.查看需要的版本 在安装好docker的linux中执行命令 拉取镜像 //拉取最新版本 docker pull redis //拉取指定版本 docker pull redis:6.0.8查看是否拉取成功 docker images去redis官网下载redis,然后在…

【docker】Mac M1版本下载安装

文章目录 docker简介为什么使用dockerdocker Mac系统M1安装M1版本下载地址 配置国内加速镜像检查是否安装成功总结 docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux…

Windows10下载安装docker

Docker 简介 Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。 Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。 因此,Docker 必须部署在 Linux…

windows下Docker的下载与安装

一、下载 1、下载地址:docker下载 选择适合自己操作系统的 2、下载完毕之后,双击安装包进⾏安装即可。 3、打开docker,一般会弹出下面的弹窗点击链接,按照网页提示依次进行操作。 下载完成后,运行上一步中下载的…

docker下载安装

1. 安装docker 离线安装路径: https://download.docker.com/linux/static/stable/x86_64/ 下载:docker-18.06.3-ce.tgz 使用ftp上传文件到服务器 解压文件: tar -zxvf docker-18.06.3-ce.tgz 复制docker文件:cp docker/* /usr/b…

【Docker】Docker下载与安装

目录 零、文章简介 一、Docker介绍 二、Docker安装 2-1、使用Boot2Docker安装 2-1-1、安装 2-1-2、初始化 2-1-3、初始化失败:解决? 2-1-4、小结和检测 2-2、Docker Toolbox 2-2-1、下载 2-2-2、安装 2-2-3、初始化 2-2-4、初始化后的样子 …

Docker 下载安装使用(简单教程)

虚拟化容器技术。Docker基于镜像,可以秒级启动各种容器。每一种容器都是一个完整的运行环境,容器之间互相隔离。 安装Docekr https://docs.docker.com/engine/install/fedora/ Docker下载地址 1、卸载linux服务器中旧版本的docker(不管有没…