Azure Spring Boot ZipException

时间:2018-08-18 22:34:08

标签: java azure spring-boot tomcat azure-web-app-service

我已经在Azure应用服务上部署了带有嵌入式tomcat的spring boot rest服务,每隔几周就会遇到间歇性中断。

每次停机时,日志都包含以下条目:

  

消息:java.util.zip.ZipException:ZIP_Read:读取zip文件时出错ZIP_Read:读取zip文件时出错
  异常类型:java.util.zip.ZipException
  失败的方法:java.util.zip.ZipFile.access $ 1400

具有以下调用堆栈。

java.lang.IllegalStateException:
   at org.apache.catalina.webresources.JarWarResourceSet.getArchiveEntries (JarWarResourceSet.java133)
   at org.apache.catalina.webresources.AbstractArchiveResourceSet.getResource (AbstractArchiveResourceSet.java256)
   at org.apache.catalina.webresources.StandardRoot.getResourceInternal (StandardRoot.java281)
   at org.apache.catalina.webresources.CachedResource.validateResource (CachedResource.java97)
   at org.apache.catalina.webresources.Cache.getResource (Cache.java69)
   at org.apache.catalina.webresources.StandardRoot.getResource (StandardRoot.java216)
   at org.apache.catalina.webresources.StandardRoot.getResource (StandardRoot.java206)
   at org.apache.catalina.mapper.Mapper.internalMapWrapper (Mapper.java1027)
   at org.apache.catalina.mapper.Mapper.internalMap (Mapper.java842)
   at org.apache.catalina.mapper.Mapper.map (Mapper.java698)
   at org.apache.catalina.connector.CoyoteAdapter.postParseRequest (CoyoteAdapter.java679)
   at org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java336)
   at org.apache.coyote.http11.Http11Processor.service (Http11Processor.java803)
   at org.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight.java66)
   at org.apache.coyote.AbstractProtocol$ConnectionHandler.process (AbstractProtocol.java868)
   at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun (NioEndpoint.java1459)
   at org.apache.tomcat.util.net.SocketProcessorBase.run (SocketProcessorBase.java49)
   at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java1149)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java624)
   at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run (TaskThread.java61)
   at java.lang.Thread.run (Thread.java748)
Inner exception java.util.zip.ZipException handled at org.apache.catalina.webresources.JarWarResourceSet.getArchiveEntries:
   at java.util.zip.ZipFile.access$1400 (ZipFile.java60)
   at java.util.zip.ZipFile$ZipFileInputStream.read (ZipFile.java734)
   at java.io.FilterInputStream.read (FilterInputStream.java133)
   at java.io.PushbackInputStream.read (PushbackInputStream.java186)
   at java.util.zip.ZipInputStream.readFully (ZipInputStream.java403)
   at java.util.zip.ZipInputStream.readLOC (ZipInputStream.java278)
   at java.util.zip.ZipInputStream.getNextEntry (ZipInputStream.java122)
   at java.util.jar.JarInputStream.<init> (JarInputStream.java83)
   at java.util.jar.JarInputStream.<init> (JarInputStream.java62)
   at org.apache.catalina.webresources.TomcatJarInputStream.<init> (TomcatJarInputStream.java37)
   at org.apache.catalina.webresources.JarWarResourceSet.getArchiveEntries (JarWarResourceSet.java108)
   at org.apache.catalina.webresources.AbstractArchiveResourceSet.getResource (AbstractArchiveResourceSet.java256)
   at org.apache.catalina.webresources.StandardRoot.getResourceInternal (StandardRoot.java281)
   at org.apache.catalina.webresources.CachedResource.validateResource (CachedResource.java97)
   at org.apache.catalina.webresources.Cache.getResource (Cache.java69)
   at org.apache.catalina.webresources.StandardRoot.getResource (StandardRoot.java216)
   at org.apache.catalina.webresources.StandardRoot.getResource (StandardRoot.java206)
   at org.apache.catalina.mapper.Mapper.internalMapWrapper (Mapper.java1027)
   at org.apache.catalina.mapper.Mapper.internalMap (Mapper.java842)
   at org.apache.catalina.mapper.Mapper.map (Mapper.java698)
   at org.apache.catalina.connector.CoyoteAdapter.postParseRequest (CoyoteAdapter.java679)
   at org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java336)
   at org.apache.coyote.http11.Http11Processor.service (Http11Processor.java803)
   at org.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight.java66)
   at org.apache.coyote.AbstractProtocol$ConnectionHandler.process (AbstractProtocol.java868)
   at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun (NioEndpoint.java1459)
   at org.apache.tomcat.util.net.SocketProcessorBase.run (SocketProcessorBase.java49)
   at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java1149)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java624)
   at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run (TaskThread.java61)
   at java.lang.Thread.run (Thread.java748)

一旦发生这种情况,所有对其余服务的调用都会返回500,并且日志将获得与上述类似的另一个条目。这一直持续到我手动重新启动应用程序服务为止。

我正在努力找出问题所在。谷歌搜索异常仅会返回有关打开zip文件的问题的结果。该应用程序本身并未进行任何压缩/解压缩,并且调用堆栈似乎表明这是tomcat的事情(这可能是由于我在Azure,SpringBoot,JVM或其他方面所做的某些事情造成的)。

在中断之前,CPU或内存使用情况似乎很好,因此这似乎不是一个因素。 任何部署或平台更改之前都不会出现此问题。

对于下一步该怎么做我感到很困惑,如果有人可以指出正确的方向进行调查,将不胜感激。

0 个答案:

没有答案