error in opening zip file-程序员宅基地

技术标签: java功能工具使用  java  tomcat  maven  jar  

错误情况
项目用 maven 打好 war 包后放到 tomcat 下,启动 tomcat,出现以下错误

3-Nov-2017 12:21:44.346 严重 [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start: 
 org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/VatuuPayMap]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:988)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1860)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@3299c4df]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
    at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4860)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4995)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 10 more
Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.JarResourceSet@90b990]
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:113)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)
    at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:724)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 13 more
Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: error in opening zip file
    at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:113)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
    ... 16 more
Caused by: java.util.zip.ZipException: error in opening zip file
    at java.util.zip.ZipFile.open(Native Method)
    at java.util.zip.ZipFile.<init>(ZipFile.java:220)
    at java.util.zip.ZipFile.<init>(ZipFile.java:150)
    at java.util.jar.JarFile.<init>(JarFile.java:166)
    at java.util.jar.JarFile.<init>(JarFile.java:103)
    at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:110)
    ... 17 more

最后一个 Caused by 就是 java.util.zip.ZipException: error in opening zip file
但是它又不告诉我是哪个包出现了错误。

思路历程
首先检查有没有 zip 包
没有 zip 包,那剩下的只能是 jar 包。
在网上搜了一阵后,发现很多情况是在 maven 打包是就出现了这个错误,就能找到是哪个包,之后就好解决了。
但是我每次都是没有错误,成功打包
之后花式打包,调各种参数,都失败了
在这样的情况下,只能调试 tomcat 了(我想到的本办法,如果有更好的办法请告述我!!!)
之后就是调试 tomcat 源码了。
tomcat 源码 org.apache.catalina.util.LifecycleBase.init 这个位置打断点,终于发现是哪个 jar 包了。

PS
其实这个 jar 包会出问题是因为它是一个本地 jar 包,按照网上推荐的方式将它 install 到本地仓库,ide 上运行是没错的,但是打包之后就是一个空包了,但是显示的大小比正常的大。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44658566/article/details/107201023

智能推荐

H264编码器参数理解 (部分)“I帧”和“帧间距”等的理解 ._i帧间隔是什么意思-程序员宅基地

文章浏览阅读6.4k次,点赞2次,收藏8次。写作背景:最近在研究H264编码器的参数,里面的参数不太懂,其中包括:1) 30 # i intervals // I 帧间距2)30 # idr intervals// idr帧间距 3) 0 # b frame number between 2 p-frame(0, 1, 2)4). 0 # min qp //最小量化步长5). 51 # max qp//最大量_i帧间隔是什么意思

27MySQL8.0和MySQL5.7的区别_mysql8和mysql5.7的区别-程序员宅基地

文章浏览阅读1.3k次,点赞2次,收藏2次。​作者: gh-xiaohegh-xiaohe的博客觉得博主文章写的不错的话,希望大家三连(关注,点赞,评论),多多支持一下!!​_mysql8和mysql5.7的区别

Python3 正则表达式特殊符号及用法(详细列表)_python模式匹配特殊符号\-程序员宅基地

文章浏览阅读942次。Python3 正则表达式特殊符号及用法(详细列表)正则表达式的强大之处在于特殊符号的应用,特殊符号定义了字符集合、子组匹配、模式重复次数。正是这些特殊符号使得一个正则表达式可以匹配字符串集合而不只是一个字符串。注1:为了便于理解,难点的地方均用斜体举了栗子。 字符 含义 . 表示匹配除了换行符外的任何字符 ..._python模式匹配特殊符号\

vue-Module parse failed: Unexpected character ‘�‘ (1:0) You may need an appropriate loader to handle_module parse failed: unexpected character ' ' (1:0-程序员宅基地

文章浏览阅读5.9k次。解决Vue中加载图片报错:Module parse failed: Unexpected character ‘�’ (1:0)You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See如果项目中没有webpack.config.js的话就自己创建一个,然后写入下面这些代码module.exports = { _module parse failed: unexpected character ' ' (1:0) you may need an appro

c#_HttpClient_application/x-www-form-urlencoded_参数转义_winform 参数转义-程序员宅基地

文章浏览阅读1.7k次。导读: 仅供使用httpclient库模拟http请求,Post请求头Content-Type: application/x-www-form-urlencoded 遇到 非字母或数字的字符 时转义的问题直接上code:https://github.com/dswyzx/forblogs及结果截图1:问题:因对接接口,参数内存在字符"+",导致双方对参数进行确认时发生分歧具体表现为:"+"字符在httpclient 为HttpRequestMessage 请求体封装HttpRequestMess_winform 参数转义

批量录入快递地址-快宝地址服务(PHP代码示例)-程序员宅基地

文章浏览阅读467次。快递地址写错了怎么办?快递地址写的不详细怎么办?怎么皮批量录入收件人地址?微商怎么批量录入发件人地址?快宝地址清洗,有效的解决了寄送快递时,批量录入收件人信息、发件人信息时,纠正地址数据,不完整地址识别,地址信息不完整时补全,已经合并区县的地址更正为最新的区县等,并输出结构化地址数据的一个有效方案。一、地址清洗适用场景1. 不完整地址识别比如地址“山东省烟台市烟台市峰哥”,由省市街道组成,..._怎么批量统一收货地址格式

随便推点

[笔记]STM32基于HAL库的SDIO+FATFS文件系统_stm32f103 hal sdio fatfs-程序员宅基地

文章浏览阅读4k次,点赞7次,收藏32次。1、背景 要用到Bootloader升级,APP部分要写运行日志。所以在Bootloader部分的FATFS要做裁剪,裁剪到只剩只读的操作就可以了,而APP端做可读可写。2、开发板 用的是野火的STM32F103VETx指南者3、工具 STM32CubeMx 和 Keil54、制作只读的FATFS文件系统 我用的是4线 Bit的配置,时钟尽量不要太高,我这里用了36分频,最终具体的频率要自己算一下。然后配置F..._stm32f103 hal sdio fatfs

简易在线留言板(下)——树洞留言板_在线留言生成-程序员宅基地

文章浏览阅读5k次。本系统开发的是一个极简易的三层架构的在线留言板。用C#语言和HTML语言编写。系统的开发软件是Visual Studio2013,开发环境是Windows7,浏览器是Chrome(谷歌浏览器)。_在线留言生成

推荐算法基础--矩阵奇异值分解svd-程序员宅基地

文章浏览阅读8k次,点赞2次,收藏15次。在推荐系统中协同过滤应该算是大名鼎鼎了,基本上做推荐的线上都会用协同过滤,比较简单而且效果较好,而协同过滤又分为基于用户的和基于物品的,基本上原理就是“与当前用户行为相似的用户喜欢一个物品,那么当前用户也会喜欢这个物品”,或者“物品A和物品B同时都被一个用户群喜欢,那么认为他们相似”。而协同过滤算法主要有两个模型,最邻近点对模型和潜在语义模型,第一个比较常用且为大家熟知,因为就是定义权值计算相似度,

flask_migrate进行数据库迁移_flask migratecommand 菜鸟教程-程序员宅基地

文章浏览阅读1.1k次。什么是数据库迁移?所谓数据库迁移就是这个数据库到另一个数据库之间的任意形式的数据移动,说白了就是更新什么时候用?在开发过程中需要修改数据库模型 而且修改之后还要更新数据库。仅当数据库不存在时,flask_sqlalchemy才会根据模型创建,所以更新的唯一方式就是:删除旧的数据库db.create_all()旧数据库的数据自然而然丢失了,所以说更新表更好的办法就是数据库迁移。flask_migratepip install flask_migratefrom flask_migrate_flask migratecommand 菜鸟教程

对称加密+非对称加密,实现数据安全传输-程序员宅基地

文章浏览阅读1.1w次,点赞11次,收藏61次。一般金融类的产品,涉及前端和后端交互的时候,都会都严格的数据安全保证。防止黑客攻击,信息篡改。加密方式有很多,总的来说,分为2种:对称和非对称。我们先来看一下,这两种加密方式分别是什么?他们有什么区别?对称加密:对称加密,即采用对称的密码编码技术,他的特点是,加密和解密使用相同的秘钥。 常见的对称加密算法有DES、3DES、Blowfish、IDEA、RC4、RC5、RC6...

【已解决】XAMPP无法启动mysql-程序员宅基地

文章浏览阅读6.5k次,点赞10次,收藏49次。最近在学习安卓开发,为了免于自己搭服务器,选择连接到XAMPP的mysql数据库。在这贴出自己遇到的一些问题。It seems that the port 3306 is already in use.aer you sure you want to use this portmysql服务器需要使用3306端口。这个错误意思是3306已经被其他程序使用了,所以XAMPP不能启动mysql服务。这里我们就需要修改XMAPP里mysql的端口,避免端口冲突。我们右键选择mysql->confi

推荐文章

热门文章

相关标签