由以下原因引起:java.lang.NoClassDefRoundError:com / mchange / v2 / ser / indirector

时间:2015-03-11 01:58:56

标签: mysql java-ee noclassdeffounderror c3p0

当我尝试使用c3p0来测试mysql数据库连接时,Eclipse会显示以下错误:

caused by:java.lang.NoClassDefFoundError:com/mchange/v2/ser/indirector,

我用Google搜索,无法找到答案。

有人能帮帮我吗?我是一名java新秀,谢谢!

3 个答案:

答案 0 :(得分:4)

首先,确保您的项目正确加载mchange-commons-java,其中您com.mchange.v2.ser.*的所在地。它是c3p0的传递依赖。

希望您使用c3p0-0.9.5。尝试将c3p0配置参数contextClassLoaderSource更改为library,以避免某些ClassLoader混淆。

答案 1 :(得分:0)

我认为您只是将c3p0 jar放置在tomcat lib中。 如果您还复制mchange-commons-java jar,那么此问题将得到解决。

答案 2 :(得分:0)

我有同样的问题。我正在使用IntelliJ IDEA。也许您可以按照以下步骤进行修复:

  • 将c3p0和mchange-commons-java添加到“ libs”文件夹中,并将其添加 作为“图书馆”;
  • 打开“文件”->“项目结构”->“项目” 设置->文物”,然后在
    中找到c3p0- *和mchange-commons-java “可用元素”和“提取为输出根”。
  • 然后 再次构建工件。