部署WAR文件时tomcat错误

标签 tomcat

请帮助我解决在 Tomcat 服务器上尝试部署 WAR 文件时出现的以下异常情况。

07:46:50,076  WARN HostConfig:606 - Exception while expanding web application archive chapal.war
07:47:00,123  INFO StandardHostDeployer:435 - Processing Context configuration file URL file:/home/eqdev/eqgen117/chrad/chapal-puru/tomcat/conf/Catalina/local
host/chapal.xml
07:47:00,158 ERROR Digester:1275 - Begin event threw exception
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:203)
        at java.util.jar.JarFile.<init>(JarFile.java:132)
        at java.util.jar.JarFile.<init>(JarFile.java:70)
        at sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:56)
        at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:41)
        at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:68)
        at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:102)
        at sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:69)
        at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:155)
        at org.apache.catalina.startup.SetDocBaseRule.begin(SetDocBaseRule.java:138)
        at org.apache.commons.digester.Digester.startElement(Digester.java:1273)
        at org.apache.catalina.util.CatalinaDigester.startElement(CatalinaDigester.java:65)
        at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
        at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentScannerImpl$ContentDispatcher.scanRootElementHook(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.commons.digester.Digester.parse(Digester.java:1567)
        at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:488)
        at org.apache.catalina.core.StandardHost.install(StandardHost.java:863)
        at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:482)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427)
        at org.apache.catalina.startup.HostConfig.checkContextLastModified(HostConfig.java:834)
        at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1070)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:327)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
        at org.apache.catalina.core.StandardHost.backgroundProcess(StandardHost.java:800)
        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1619)
        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1628)
        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1608)
        at java.lang.Thread.run(Thread.java:595)
07:47:00,165 ERROR HostConfig:484 - Error deploying configuration descriptor chapal.xml
java.io.IOException: java.util.zip.ZipException: error in opening zip file
        at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:494)
        at org.apache.catalina.core.StandardHost.install(StandardHost.java:863)
        at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:482)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427)

最佳答案

当自动部署设置为 true 并且我通过慢速连接到 Linux 服务器上传 war 文件时,我看到了这个问题。出于某种原因,Tomcat 会在 WAR 完成上传到服务器之前尝试部署它。关闭自动部署并手动执行,或者将文件通过 ftp 传输到服务器上除 webapps 以外的目录,然后将其移动到 webapps 中可以解决问题。

似乎是 Tomcat 没有等到文件上传完成再尝试展开它的问题。

关于部署WAR文件时tomcat错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3369252/

相关文章:

angular - CORS 不适用于 Angular 5 tomcat 8 应用程序

java - lib 子目录中的 Tomcat jar 文件会在部署时自动移动到 lib 文件夹中吗?

postgresql - 错误检测数据库类型 : Cannot create PoolableConnectionFactory (FATAL: no pg_hba. conf

java - servlet doGet通过servlet注解调用启动两次

Tomcat - 多个用户获得相同的 sessionID

Eclipse IDE 远程调试和远程编辑旧版 Web 应用程序

Apache 虚拟主机不适用于子域

java - 无法在 Apache Tomcat 中启动应用程序

java - Tomcat - 将项目文件夹设为 Web 根目录

java - Tomcat 警告 : The executor associated with thread pool [http-apr-8080] has not fully shutdown