Tomcat启动:java.util.zip.ZipError: invalid LOC header (bad signature)

Tomcat启动项目报错:invalid LOC header (bad signature)

问题

如果报错中没有提示其他信息,只提示java.util.zip.ZipError:invalid LOC header (bad signature) 或者invalid CEN header (bad signature)。无从下手,那就来看下面的解决方法吧。

原因

原因是maven仓库中的某个jar包下载不完整或损坏等原因无法正常加载。

解决方法

一个大项目中有很多的jar包,不可能一一排查。下面提供两个快捷方法。

1、删除本地maven的\repository库中所有.lastupdate后缀文件 以及sha1-in-progress为后缀的文件,重新下载。

当我们使用eclipse下载jar包,有事突然退出,再次进入jar包还是下载不全,可能的原因就是 maven没有将jar下载完时,会生成一个.lastupdate文件,在校验sha1码未完成时会生成sha1-in-progress为后缀的文件.

解决方法: 使用文件搜索工具(楼主用的是 Everything)输入.lastupdate删除所有以.lastupdate结尾的文件; 输入sha1-in-progress删除所有以sha1-in-progress结尾的文件。

然后简单修改.pom(比如加空格) 保存,然后eclipse就会重新下载jar包!


2、检查项目中有问题的jar包
如果通过第一步,启动项目还是报错,可以通过mvn test命令来检查项目中有问题的jar包,如果想跳过测试,可以使用命令:

mvn test -Dmaven.test.skip=true

也可以通过右击项目名 -> Run As -> Maven test ,这时控制台会报哪个jar包出错。我直接执行Maven test发现控制台并没有提示那个jar包出错,后来我先执行Run As -> Maven clean,然后再执行Run As -> Maven test发现控制台就有提示哪个jar包出错了。如下面所示:

[WARNING] 读取C:\Users\01377806.m2\repository\org\apache\cxf\cxf-core\3.2.5\cxf-core-3.2.5.jar时出错; invalid CEN header (bad signature)

终于找到罪魁祸首了,然后在maven的本地库找到对应的jar包删掉,再重新下载即可。

这个问题折腾了我一天,终于解决了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值