問題描述
今天寫需求在啓動tomcat服務器時,爆出一個莫名其妙的bug,容器根本啓動不起來。
錯誤描述
嚴重: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/demo]]
at java.util.concurrent.FutureTask.report(Unknown Source)
at java.util.concurrent.FutureTask.get(Unknown Source)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:911)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:890)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1403)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/demo]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:158)
... 6 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@4ce411b]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:158)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4830)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4962)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)
... 6 more
Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.JarResourceSet@55a8dfea]
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:112)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:141)
at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:701)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)
... 9 more
Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: error in opening zip file
at org.apache.catalina.webresources.JarResourceSet.initInternal(JarResourceSet.java:139)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
... 12 more
Caused by: java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(Unknown Source)
at java.util.zip.ZipFile.<init>(Unknown Source)
at java.util.jar.JarFile.<init>(Unknown Source)
at java.util.jar.JarFile.<init>(Unknown Source)
at org.apache.catalina.webresources.JarResourceSet.initInternal(JarResourceSet.java:136)
... 13 more
問題分析
查看tomcat日誌 catalina 。java.util.zip.ZipException: error in opening zip file,這句話的錯誤信息表示容器啓動時解壓失敗。懷疑是該類jar有錯誤,定位該類發現該類是 jdk rt.jar 基礎類,這個還會有錯》???
但是 除了這個項目出問題,其他的項目都可以完好的運行,jdk不會有毛病。我懷疑是tomcat的問題,因而重新裝tomcat。還是不行。。、
各種嘗試,又以爲IDEA工具配置出錯,因爲以前出過此類問題,重新安裝配置之後依然不行。
排除了所有的可能性,就差maven了,有可能是maven的jar在reimport時jar包下載錯誤導致的問題。刪除原有的倉庫配置新的目錄重新拉包下載。
done,問題解決,之後排查倉庫問題,發現是spring-context包下載問題。根本就沒有這方面想,公司自己搭建的maven服務器,下載還能出錯??而且mavenjar下載失敗,你也報個問題啊,還是build success!!!! shit holly shit.
個人blog:http://billyzhang.coding.me/