【问题解决】Caused by: java.lang.ClassNotFoundException: com.mchange.v2.c3p0.ComboPooledDataSource

最近构建一个web应用的过程中,保存修改的java代码后,Tomcat报错

java.lang.NoClassDefFoundError: com/mchange/v2/c3p0/ComboPooledDataSource
Caused by: java.lang.ClassNotFoundException: com.mchange.v2.c3p0.ComboPooledDataSource

项目的持久层使用原生JDBC+c3p0连接池,网上查了很多相关文章,说该问题是c3p0相关jar包未build path引起的,检查项目环境配置后发现原因并非如此。修改代码后,重新启动Tomcat服务器则不会报错。检查Tomcat设server.xml配置:

 <Context docBase="dict" path="/dict" reloadable="true" source="org.eclipse.jst.jee.server:dict"/></Host>

解决办法:

修改tomcat目录下conf文件夹下的server.xml, 找到标签,把reloadble的属性值设为:reloadable=“false”。

或者

reloadable="true"的情况下,每次修改代码或配置之后,手动重新启动Tomcat。

这样之后暂时不会报错,且web项目运行正常,暂时在此记录一下。

2019.10.9更新:Tomcat服务器Server Options 的第一个选项

关闭reloadable后每次修改文件都要重启服务器,等的我实在受不了,网上查了各种解决方案还是无果。偶然关闭了Tomcat服务器Server Options 的第一个选项后,不再报错了。。。具体原因现在还不清楚。

具体步骤:

双击tomcat服务器,取消勾选smwp

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值