Caused by: java.lang.NoClassDefFoundError: org/apache/commons/io/IOUtils

在使用yan-master项目过程中,调用开发者的文件上传方法:fileUpload();

抛出异常:

Caused by: java.lang.NoClassDefFoundError: org/apache/commons/io/IOUtils

遍寻原因无果,看了很多帖子猜测可能是jar包冲突,然而并没有找到解决方法。

最后发现是yan-web的war包lib文件夹中中有commons-fileupload,但是没有commons-io,手动添加进去以后错误解决。

如图:

 

但是在此项目中,yan-web是依赖于yan-common的,yan-common是由maven管理已经导入上述缺少的jar包的,由此猜测到导致打包好的war包中没有commons-io的原因是jar包冲突,如图:

暂未找到解决根本问题的方法,如果有哪位大佬看到此文且知道问题如何解决,望不吝告知。

上述问题解决:

因为yan-web项目为分布式项目,jar包依赖是由最外层yan.pom去统一管理,如图:

我对类似缺包少jar原因猜测是:单个组件之间相互依赖可能会有jar包依赖不完全或者被依赖组件的jar包没有生成出来,导致当前组件依赖的其他组件的依赖jar没有填入进来,由此导致在我使用本项目时经常出现,明明jar包存在,但是还是抛出的缺少某个类,或某个组件jar的异常

解决:

使用父层(yan.pom)的maven管理文件去统一生成各组件jar包,如下图:

生成完成后可以看到各组件的target目录下:

 

等到生成完成以后,之前的关于mabatis反向生成使用自定义插件(序列化example类)时,抛异常:找不到缺失的自定义插件jar的问题,以及上面明明有commons-io的依赖却依然抛出找不到相关类的异常就全部解决了。

活到老学到老,能解决一个困扰许久的问题心情实在是非常舒畅!!!哈哈哈!!!

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值