项目中引用的明明是commons.collections-3.2.1.jar (3.2版的),但服务器启动后,调用CollectionUtils.isNotEmpty 方法时,
却总是报 NoSuchMethodError: org.apache.commons.collections.CollectionUtils.isNotEmpty(Ljava/util/Collection;)Z
上面那个异常仅在引用低版本的commons.collectionsjar包时才会发生.所以想定位运行时到底引用的是哪个jar包.
方法如下:
System.out.println(CollectionUtils.class.getProtectionDomain().getCodeSource().getLocation());
结果,证明引用了其他工程里的低版本jar包,关闭该工程后,重启服务,问题解决.
记录下来,以作备忘.
解决引用低版本commons.collections jar包导致的NoSuchMethodError问题
本文详细记录了解决在项目中引用低版本commons.collections jar包后,服务器启动调用CollectionUtils.isNotEmpty方法时出现NoSuchMethodError问题的方法。通过System.out.println(CollectionUtils.class.getProtectionDomain().getCodeSource().getLocation())定位到实际引用的jar包位置,并通过关闭该工程解决此问题。
1033

被折叠的 条评论
为什么被折叠?



