java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputS

从昨天开始有一个问题令我挺是郁闷。我用tomcat与tomcat plugin开发一个上传的小程序(上传组件用的是:common upload)。当然刚开始为了能够调试都是在eclipse里通过tomcat plugin启动的tomcat , 运行程序后报错误:java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream。很显然是common-io.jar这个包没加到classpath中(事实上我已经加了)。在网上找了很多贴子,都说是common-io.jar这个包没有加,这下子我就纳闷了,为什么就不行呢?

于是,我开始怀疑是JAR的版本不兼容(因为我每次遇到这种稀其古怪的问题时最后发现都是版本不兼容)。接着就开始更换commons-io.jar包的版本。还是不行。

实在搞不清楚为什么了,向同事请教,他们看后也不知道为什么,不过,向我提供了一个很有用的调试方法。他们怀疑与eclipse有关,叫我尽量让调试环境干净些。于是,我不在eclipse里启动tomcat, 只是直接在外部启动tomcat ,结果一切OK!

这下令我更纳闷了,为什么在eclipse里启动tomcat就会报类没有加载的错误了?这个问题弄得很烦,但也把我的脾气也搞来了,我发誓非要解决它不可。

这么多路走不通,再从哪里开始了? 我开始怀疑是tomcat plugin的问题,于是,我把它换成WTP plugin 。结果,一切OK !

为什么单独跑可以,在WTP环境里跑也可以,偏偏移到tomcat plugin里跑就不行了呢?于是,接着我开始怀疑是我操作系统的问题。我找同事借用了一下他们的机器,在他们的机器里在WTP 及tomcat plugin环境里也居然一切OK !

这时候,同事们都说是我的机器环境有问题。可是我的机器环境就有什么问题了。在他们的机器上跑程序时也是从我这里克隆的软件啊。于是,我开始反复比较同事机器与我机器上配置tomcat plugin环境在哪儿不同。最后,再经过努力,谜底终于揭开了:


在上图中,千万不要将cssweb前的勾勾上(因为我调试的是另外一个工程,这样导致eclipse加载的始终是cssweb工程里的JAR,于是,也就出现了找不到类的问题)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值