【问题解决】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更新:【问题解决】Caused by: java.lang.ClassNotFoundException: com.mchange.v2.c3p0.ComboPooledDataSource_第1张图片

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

具体步骤:

【问题解决】Caused by: java.lang.ClassNotFoundException: com.mchange.v2.c3p0.ComboPooledDataSource_第2张图片

你可能感兴趣的:(java,web)