解决Eclipse启动Tomcat时报Error loading WebappClassLoader错误

最近新建了一个JSF项目(网上查到用Struts,Spring MVC也会如此),配置好之后用Eclipse启动Tomcat报了以下错误:严重: Error loading WebappClassLoaderjava

 
  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. 严重: 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)  

网上搜了几种解决方案:web

一、关掉myeclipse,把原来的tomcat换掉,若是是安装版的就卸载,从新放一个tomcat,启动myeclipse,配置tomcat,部署,再启动tomcat,一切OK。spring

二、以前jar包我是经过Build path -> Configure build path-> Add External JARs的方式添加的,程序编译,Tomcat启动都很正常,没有错误。但是一访问jsp页面就报上述错误。 苦思不得其解,但看了错误信息说是找不到org.springframework.web.servlet.DispatcherServlet类,因此我就干脆将spring.jar,spring-webmvc.jar等jar包统统手工添加到/WEB-INF/lib目录下,而且将default output folder值改成projectName/WebContent/WEB-INF/classes 问题就得以解决了。apache

 

这两种解决方案试了都不行,可是大致了解到多是jar包没有导入进去,因此进了eclipse的工程目录,找到对应的存放jar包的目录:.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\jsf2nd\WEB-INF\lib,发现果真少了两个jar包,将之放入后问题就解决了。tomcat

错误缘由:至今未能查明到底是哪一个地方出错了才使得eclipse不能将jar包放到eclipse的tomcat插件下面。mvc

可能的几个缘由:app

一、个人eclipse选择的默认编译是jdk1.5,而这个项目用的是Tomcat6, eclipse

二、个人Eclipse里面默认设置的tomcat的编译器也是1.5webapp

相关文章
相关标签/搜索