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的持久化數據但又讀取失敗造成的。此異常不影響系統的使用。

解決辦法:將 tomcat_home\work\Catalina\localhost\『工程名』\SESSIONS.ser刪除。如果正常關閉服務端,該文件是自 動刪除的。考慮到每個人的tomat的工作目錄不同,建議在“搜索”功能中找到你的SESSIONS.ser文件,而且只需要刪 除..\yourProjectName\下的SESSIONS.ser即可。 

最簡單的辦法是work下的全部刪除,然后重啟tomcat。

 

 用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就可以了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM