Tomcat Could not publish to the server. IndexOutOfBoundsException | java.util.zip.ZipException

在Eclipse里的Tomcat发布项目报错了:Could not publish to the server. java.lang.IndexOutOfBoundsException
然后在实际的tomcat中启动也报错:


 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.JarResourceSet@1e7c7811]
	at ...
Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.JarResourceSet@1e7c7811]
	at ...
Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)
	at ...

查看日志发现这一行:java.util.zip.ZipException
证明是压缩包出错了,很大可能是lib下的jar出错了,而我用的又是maven来管理包,那么就证明是maven本地仓库出错了。

那么,lib报下这么多jar如何判定是哪个jar出错了呢?(PS:也可能是jar下的某一文件错了)

可以通过对jar解压来判断,假设项目war包为,abc.war——
首先将abc.war通过解压工具解压,然后进入WEB-INF/lib目录,将所有jar都解压一次(PS:批量解压),此时会看到解压工具报错:
zipError
从上图可以看出是 httpclient-4.5.3.jar错了

那么现在来到maven本地仓库的目录
在搜索栏搜索“httpclient-4.5.3.jar”:

右键 httpclient-4.5.3.jar
选择“打开文件位置”,此时进入了httpclient-4.5.3.jar所在目录:

将整个httpclient/4.5.3目录下的文件全部删除即可。

如果遇到“文件被使用”提示,可能文件本身就被eclipse占用,可尝试退出eclipse再试。

此时,回到eclipse进行 Maven Update即可。

 

 

向来喜欢简单粗暴的解决方式╮(╯▽╰)╭,

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值