部署WAR文件时出现tomcat错误

时间:2010-07-30 06:54:06

标签: 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)

8 个答案:

答案 0 :(得分:13)

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

在尝试扩展文件之前,Tomcat似乎没有等到文件上传完成后出现问题。

答案 1 :(得分:5)

如果要在Linux上进行部署,请确保用户可以读取tomcat进程正在运行的情况。运行&#34; chmod + r&#34;到war文件中为每个人添加读取权限。

答案 2 :(得分:3)

您是否以ASCII模式将文件从Windows传输到Unix而不是Binary?

这可能是文件损坏的一个原因。你也许可以在Windows上用ZIP打开 - 但试试

在Unix上

jar tvf <filename>,看它是否正确地查看内容

答案 3 :(得分:3)

我也有同样的问题。更改war文件的权限解决了它

答案 4 :(得分:1)

您的war文件可能已损坏或具有错误的权限。 .war文件是zipfiles - 你可以用zip / winzip / 7zip等打开一个并确认它是完整和可读的吗?什么是文件权限?

答案 5 :(得分:1)

我遇到了同样的问题,我只是手动解压缩并将其压缩。这对我有用。

答案 6 :(得分:0)

我刚遇到同样的问题。 我需要将WAR文件刻录到DVD并将其复制到DMZ。 不幸的是,在Roxio中最终确定光盘是因为某种原因破坏了WAR文件。 我停止敲定光盘并正常部署WAR。

答案 7 :(得分:0)

我在更改Tomcat部署脚本时遇到此问题。原来,有人在弄乱JDK文件夹中的JAR文件,而Tomcat无法解压缩这些弄乱的文件。

明显的建议:注意JAR文件名,并确定它们是否真正合法。

希望有帮助。