當(dāng)前位置: 首頁(yè)IT技術(shù) → 解決Eclipse啟動(dòng)Tomcat時(shí)報(bào)Error loading WebappClassLoader錯(cuò)誤

解決Eclipse啟動(dòng)Tomcat時(shí)報(bào)Error loading WebappClassLoader錯(cuò)誤

更多

最近新建了一個(gè)JSF項(xiàng)目(網(wǎng)上查到用Struts,Spring MVC也會(huì)如此),配置好以后用eclipse啟動(dòng)Tomcat報(bào)了如下錯(cuò)誤:嚴(yán)重: Error loading WebappClassLoader

  1.   context: /jsf2nd  
  2.   delegate: false  
  3.   repositories:  
  4.     /WEB-INF/classes/  
  5. ----------> Parent Classloader:  
  6. org.apache.catalina.loader.StandardClassLoader@1172e08  
  7.  javax.faces.webapp.FacesServlet  
  8. java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet  
  9.     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)  
  10.     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)  
  11.     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1128)  
  12.     at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026)  
  13.     at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4421)  
  14.     at org.apache.catalina.core.StandardContext.start(StandardContext.java:4734)  
  15.     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)  
  16.     at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)  
  17.     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)  
  18.     at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)  
  19.     at org.apache.catalina.core.StandardService.start(StandardService.java:525)  
  20.     at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)  
  21.     at org.apache.catalina.startup.Catalina.start(Catalina.java:595)  
  22.     at sun.reflect.NativeMethodaccessorImpl.invoke0(Native Method)  
  23.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)  
  24.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  
  25.     at java.lang.reflect.Method.invoke(Method.java:597)  
  26.     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)  
  27.     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)  
  28. 2011-12-8 9:11:27 org.apache.catalina.core.StandardContext loadOnStartup  
  29. 嚴(yán)重: Servlet /jsf2nd threw load() exception  
  30. java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet  
  31.     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)  
  32.     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)  
  33.     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1128)  
  34.     at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026)  
  35.     at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4421)  
  36.     at org.apache.catalina.core.StandardContext.start(StandardContext.java:4734)  
  37.     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)  
  38.     at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)  
  39.     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)  
  40.     at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)  
  41.     at org.apache.catalina.core.StandardService.start(StandardService.java:525)  
  42.     at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)  
  43.     at org.apache.catalina.startup.Catalina.start(Catalina.java:595)  
  44.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  45.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)  
  46.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  
  47.     at java.lang.reflect.Method.invoke(Method.java:597)  
  48.     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)  
  49.     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)  

網(wǎng)上搜了幾種解決方案:1、關(guān)掉myeclipse,把原來(lái)的tomcat換掉,如果是安裝版的就卸載,重新放一個(gè)tomcat,啟動(dòng)myeclipse,配置tomcat,部署,再啟動(dòng)tomcat,一切OK。2、之前jar包我是通過(guò)Build path -> Configure build path-> Add External JARs的方式添加的,程序編譯,Tomcat啟動(dòng)都很正常,沒(méi)有錯(cuò)誤。可是一訪問(wèn)jsp頁(yè)面就報(bào)上述錯(cuò)誤。 苦思不得其解,但看了錯(cuò)誤信息說(shuō)是找不到org.springframework.web.servlet.DispatcherServlet類,所以我就干脆將spring.jar,spring-webmvc.jar等jar包通通手工添加到/WEB-INF/lib目錄下,并且將default output folder值改為projectName/WebContent/WEB-INF/classes 問(wèn)題就得以解決了。

這兩種解決方案試了都不行,但是大體了解到可能是jar包沒(méi)有導(dǎo)入進(jìn)去,所以進(jìn)了eclipse的工程目錄,找到對(duì)應(yīng)的存放jar包的目錄:.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\jsf2nd\WEB-INF\lib,發(fā)現(xiàn)果然少了兩個(gè)jar包,將之放入后問(wèn)題就解決了。

錯(cuò)誤原因:至今未能查明究竟是哪個(gè)地方出錯(cuò)了才使得eclipse不能將jar包放到eclipse的tomcat插件下面。

可能的幾個(gè)原因:1、我的eclipse選擇的默認(rèn)編譯是jdk1.5,而這個(gè)項(xiàng)目用的是Tomcat6, 2、我的Eclipse里面默認(rèn)設(shè)置的tomcat的編譯器也是1.5

熱門評(píng)論
最新評(píng)論
發(fā)表評(píng)論 查看所有評(píng)論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)