当前位置: 首页 > 面试题库 >

java.lang.IllegalArgumentException:无效或不可读的WAR文件:打开zip文件时出错

巩俊远
2023-03-14
问题内容

当我在Tomcat上执行display.war文件时,我在Catalina.2011-03-30.log中收到此错误。错误如下所示:

Mar 30, 2011 8:01:31 PM org.apache.catalina.startup.ContextConfig init  
SEVERE: Exception fixing docBase for context [/Display]   
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:114)
    at java.util.jar.JarFile.<init>(JarFile.java:135)
    at java.util.jar.JarFile.<init>(JarFile.java:72)
    at sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:72)
    at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:48)
    at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:70)
    at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:104)
    at sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:71)
    at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:148)
    at org.apache.catalina.startup.ContextConfig.fixDocBase(ContextConfig.java:886)
    at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:1021)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:279)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.core.StandardContext.init(StandardContext.java:5602)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4378)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:905)
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:740)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:500)
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1345)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:303)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1337)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
    at java.lang.Thread.run(Thread.java:662)

Mar 30, 2011 8:01:31 PM org.apache.catalina.core.StandardContext resourcesStart
SEVERE: Error starting static Resources

java.lang.IllegalArgumentException: Invalid or unreadable WAR file : error in opening zip file  
    at org.apache.naming.resources.WARDirContext.setDocBase(WARDirContext.java:135)  
    at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4249)  
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4418)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:905)
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:740)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:500)
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1345)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:303)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1337)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
    at java.lang.Thread.run(Thread.java:662)

提前致谢。


问题答案:

不幸的是,原因和解决方案并不像Buhake Sindi所建议的
那么
明显。我之前在几个论坛中都多次看到此问题。我自己至少经历过一次。Google目前对确切的异常消息给出了500多次匹配。一切都没有答案。但是,有一些提示表明它可以在IDE
X上运行,但不能在IDE Y上运行,并且可以在Server X上运行,但是不能在Server Y上运行。或者从WAR 中删除或添加 某些东西
都可以(在此处可以找到典型示例))。但是,没有人深入解释真正的根本原因。


认为 这与所使用的JDK / JRE版本和WAR的文件大小有关。您可以尝试以下操作:

  • 尝试在您的IDE和/或appserver环境中更新/对齐JDK / JRE版本。
  • 尝试将一些内容添加到WAR,一些随机的JAR或JSP文件或其他内容中,然后进行重建。


 类似资料:
  • 问题内容: 我有一个Jar文件,其中包含其他嵌套的Jar。当我在该文件上调用新的构造函数时,出现一个异常: java.util.zip.ZipException:打开zip文件时出错 当我手动解压缩此Jar文件的内容并再次将其压缩时,它可以正常工作。 我仅在WebSphere 6.1.0.7和更高版本上看到此异常。相同的东西在tomcat和WebLogic上也可以正常工作。 当我使用JarInpu

  • 当我运行“grails run app-Dserver.port=8005”时,出现以下错误。请有人帮我。提前谢谢!! 打开zip文件或JAR清单时出错,缺少:E:/work/ThirdParty/grails-2.4.3/lib/org。springframework/springloaded/jars/springloaded-1.2.0。初始化VM代理库时发生RELEAS E.jar错误,无

  • 我从服务器收到一个zip文件,它必须被处理。我可以手动解压缩它。所以我相信zip文件没有被破坏。 下面的代码从Zip文件中读取文件而不解压它。 注意:我从服务器收到的zip文件大小为5MB。但是一旦我解压缩并压缩回来,新的zip文件大小变成了8MB。 增加:

  • 我知道这是一个很常见的问题。但是,有一个微小的区别,我的WPF安装完美,并运行在Windows7和Windows8操作系统上。但是,当试图在运行Windows XP的VM上安装时,会出现以下错误: 无法继续。应用程序的格式不正确。详情: 组件存储事务处理详细信息 没有可用的交易信息。 我用有效密钥重新签名了应用程序 我已在多台PC上安装,安装和工作都很好。

  • 在Eclipse中为我的XXXXClient(web服务)项目运行Maven安装时,我反复收到以下消息:“项目”XXXXClient“中的required Library:'x:/xxxx/xxxx/.m2/repository/javax/enterprise/CDI-API/1.0-sp4-redhat-4/CDI-API-1.0-sp4-redhat-4.jar'无法读取或不是有效的ZIP文

  • 我跟随了几篇文章,使用javaclass创建了一个zip文件。拉链已创建,但我无法打开它。在我的Mac电脑上,当我用命令打开它时,我收到了这条消息: 找不到中央目录签名的结尾。此文件不是zipfile,或者它构成多部分存档的一个磁盘。在后一种情况下,将在此存档的最后一个磁盘上找到中心目录和zipfile注释。 解压:在/Users/xxxx/Downloads/iad之一中找不到zipfile目录