tomcat 啓動異常 EOFException: Unexpected end of ZLIB input stream

EVERE: Exception fixing docBase for context [/agdis]
java.io 

.EOFException: Unexpected end of ZLIB input stream
    at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:413)
    at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
    at java.io 

.FilterInputStream.read(FilterInputStream.java:107)
    at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:413)
    at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:144)
    at org.apache.catalina.startup.ContextConfig.fixDocBase(ContextConfig.java:735)
    at org.apache.catalina.startup.ContextConfig.beforeStart(ContextConfig.java:863)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:388)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1095)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1930)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

Jan 18, 2018 10:23:58 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error while attempting to validate required application extensions
java.io 

.IOException: Jar: commons-codec-1.5.jar
    at org.apache.catalina.util.ExtensionValidator.validateApplication(ExtensionValidator.java:205)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5339)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1095)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1930)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)
    at java.util.zip.ZipFile.read(Native Method)
    at java.util.zip.ZipFile.access$1400(ZipFile.java:56)
    at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:679)
    at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:415)
    at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
    at java.io 

.FilterInputStream.read(FilterInputStream.java:133)
    at java.io 

.PushbackInputStream.read(PushbackInputStream.java:186)
    at java.util.zip.ZipInputStream.readFully(ZipInputStream.java:424)
    at java.util.zip.ZipInputStream.readLOC(ZipInputStream.java:277)

 

session未超時的狀況下,服務器關閉的時候會被序列化爲工程名\SESSIONS.ser,tomcat 啓動的時候再加載進來,EOFException表示tomcat上次關閉時還有一些活動鏈接,因此在重啓時tomcat嘗試去恢復這些session,可是在輸入過程當中意外地到達文件尾或流尾的信號,致使從session中獲取數據失敗。異常是tomcat自己的問題,因爲tomcat上次非正常關閉時有一些活動session被持 久化(表現爲一些臨時文件),在重啓時,tomcat嘗試去恢復這些session的持久化數據但又讀取失敗形成的。此異常不影響系統的使用。java

解決辦法:將 tomcat_home\work\Catalina\localhost\『工程名』\SESSIONS.ser刪除。若是正常關閉服務端,該文件是自 動刪除的。考慮到每一個人的tomat的工做目錄不一樣,建議在「搜索」功能中找到你的SESSIONS.ser文件,並且只須要刪 除..\yourProjectName\下的SESSIONS.ser便可。 

web

最簡單的辦法是work下的所有刪除,而後重啓tomcat。apache

 

 用tomcat做web服務器的時候,部署的程序在webApps下,這些程序都是編譯後的程序(發佈到tomcat的項目裏含的類,會被編譯成.class後才發佈過來,源文件沒有發佈過來,但這裏的jsp沒有經編譯的)。tomcat有一個work目錄,裏面存放了頁面的緩存,訪問的jsp都會編譯(從work裏進入Catalina後的如localhost站點文件夾下的項目,咱們能夠看到那些jsp 頁面會被編譯成應該是servlet文件,下次再來訪問時,就直接運行servlet類就能夠向客戶端反應響應頁面了,因此有的博客說第一次訪問時會比較 慢,是由於新發布上去的頁面在第一我的訪問時,會先編譯成servlet文件,因此慢了,一旦編譯好,那麼除非jsp頁面修改,否則下次訪問直接運行 servlet就能夠響應用戶,因此快),編譯後的文件都會存儲在work目錄下。而tomcat顯示的目錄,都會從這個緩存裏找編譯後的jsp對應的class文件。因此當清空了work目錄後,該過程將會重新來過。     
    有的時候會遇到一個問題,就是修改後的頁面在tomcat運行的時候顯示不了修改後的痕跡。這個時候刪除work目錄下對應的項目文件夾,從新啓動tomcat就能夠了。緩存

相關文章
相關標籤/搜索