遭遇java.lang.NoClassDefFoundError:org/apache/tomcat/PeriodicEventListener

桃子紅了吶發表於2017-11-09

前天還正常的程式,今天忽然無法啟動了,MyEclipse的Console提醒我如下錯誤:

嚴重: Error deploying web application directory rttsbiz

java.lang.NoClassDefFoundError: org/apache/tomcat/PeriodicEventListener

    at java.lang.ClassLoader.defineClass1(Native Method)

    at java.lang.ClassLoader.defineClass(ClassLoader.java:621)

    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)

    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1817)

    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)

    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)

    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)

    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1083)

    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)

    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4042)

    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4348)

    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)

    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)

    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)

    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)

    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)

    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)

    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)

    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)

    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)

    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)

    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)

    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)

    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)

    at org.apache.catalina.core.StandardService.start(StandardService.java:516)

    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)

    at org.apache.catalina.startup.Catalina.start(Catalina.java:566)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    at java.lang.reflect.Method.invoke(Method.java:597)

    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)

    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

Caused by: java.lang.ClassNotFoundException: org.apache.tomcat.PeriodicEventListener

    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)

    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)

    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)

    … 33 more

但是Console的報錯最容易讓人迷惑了,除了java.lang.NoClassDefFoundError: org/apache/tomcat/PeriodicEventListener一句感覺有實際意義外。

回想程式裡有定時任務,但前天還是正常的。網上搜尋一下,有的說少包,有的說要刪掉Webapp下的程式再重啟動Tomcat,前者不靠譜,後者試了無效。

後來想想,估計是昨天匯入一些別的包搞得。於是把前天備份解壓,再由MyEclipse匯入,結果就好了。好在有備份幫忙。

看來修改前備份的習慣一定要保持好,這在關鍵時刻可以省卻很多力氣。


本文轉自張昺華-sky部落格園部落格,原文連結:http://www.cnblogs.com/xiandedanteng/p/3330509.html,如需轉載請自行聯絡原作者


相關文章