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

所属分类: 电脑基础 / 故障排除 阅读数: 84
收藏 0 赞 0 分享

context: /jsf2nd 
  delegate: false 
  repositories: 
    /WEB-INF/classes/ 
----------> Parent Classloader: 
org.apache.catalina.loader.StandardClassLoader@1172e08 
 javax.faces.webapp.FacesServlet 
java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1128) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4421) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4734) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:525) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 
    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:289) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 
2011-12-8 9:11:27 org.apache.catalina.core.StandardContext loadOnStartup 
严重: Servlet /jsf2nd threw load() exception 
java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1128) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4421) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4734) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:525) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 
    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:289) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 

网上搜了几种解决方案:

1、关掉myeclipse,把原来的tomcat换掉,如果是安装版的就卸载,重新放一个tomcat,启动myeclipse,配置tomcat,部署,再启动tomcat,一切OK。
2、之前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 问题就得以解决了。

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

错误原因:至今未能查明究竟是哪个地方出错了才使得eclipse不能将jar包放到eclipse的tomcat插件下面。

可能的几个原因:
1、我的eclipse选择的默认编译是jdk1.5,而这个项目用的是Tomcat6,
2、我的Eclipse里面默认设置的tomcat的编译器也是1.5

更多精彩内容其他人还在看

打印机端口改不了怎么办详细解决方案

驱动程序安装完整后,将打印机重新连到服务器端。在客户端电脑上配置打印机端口。客户端安装打印机后,创建的本地端口是 “USB001” 。需要把打印机端口改成网络端口,下面与大家分享下具体的修改方法
收藏 0 赞 0 分享

64位系统不能玩英雄联盟的解决方法

因为很多人玩的游戏是针对32位系统的,所以游戏内的DirectX9插件安装不正确,所以才会提示出错,比如提示:缺少d3dx9_43.dll
收藏 0 赞 0 分享

电脑开机出现Invalid partition table错误解决方法

Invalid Partition Table 就是无效分区表,一般是由于电脑中毒或硬盘分区表有问题造成的,一般通过重写硬盘分区表
收藏 0 赞 0 分享

因动态磁盘引起的系统无法引导解决方法

因为VMVare本身的虚拟技术和Windows Phone模拟器相冲突,从而使得在Visual Sutodio Express For Windows Phone 中的调试时,连接模拟器出错,找到解决资料后与大家分享
收藏 0 赞 0 分享

Mac下SSH登录不上提示错误的解决方法

登录虚拟机的的linux时,提示未知错误: REMOTE HOST IDENTIFICATION HAS CHANGED,经搜索找到了解决方法,有类似问题的朋友可以参考下哈
收藏 0 赞 0 分享

host 不起作用问题的解决方法

由于某种需要,需要将域名指向指定的ip地址,平时挺好用,今天发现不能用了,注册表,host文件也修改了都不能用,经过排查,原来是host中的文件顺写反了
收藏 0 赞 0 分享

为什么电脑空闲时(隔一段时间)ADSL就自动频繁断线

只要我一直玩《英雄联盟》 《穿越火线》或者不停地上网一切正常,但只要不碰电脑,隔一段时间后ADSL就会自动断线,下面与大家分享下造成此原因的具体解决方法
收藏 0 赞 0 分享

USB设备运行不正常怎么回事具体判断方法

面对越来越多的USB设备,电脑总会给大家出点小难题,比如说USB设备运行不正常了,下面与大家分享下具体的判断方法,感兴趣的朋友可以了解下哈
收藏 0 赞 0 分享

电脑语言栏不见了(输入法)丢失怎么办(多种找回方法)

语言栏(输入法)丢失问题可能是你自己误删除,也可能是广告木马,输入法图标不见了的现象。必须进行修复才能解决这个问题,具体的修复方法如下,有类似问题的朋友可以参考下哈
收藏 0 赞 0 分享

ThinkPad X100e不显示问题通过焊北桥解决

一个ThinkPad X100e,故障就是什么也不显示,经过一番折腾,根据之前学过的知识,焊北桥,开机以后居然正常显示了,特与大家分享
收藏 0 赞 0 分享
查看更多