FacesServlet (Java EEWTP/JSF问题的解决--java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet
转自:http://babyblue2004.bokee.com/5733663.html
这几日在www.eclipse.org上看了一篇文章(http://www.eclipse.org/webtools/jsf/dev_resource/JSFTutorial-RC3/JSFTools_tutorial.html),按照上面作了一个JSF程序。出现以下问题:
严重: Error loading WebappClassLoader
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@184ec44
javax.faces.webapp.FacesServlet
java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1355)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1034)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3951)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4225)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:904)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:867)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1190)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:292)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1305)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1569)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1578)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1558)
at java.lang.Thread.run(Unknown Source)
2006-10-8 9:51:58 org.apache.catalina.core.StandardContext loadOnStartup
严重: Servlet /JSFTutorial threw load() exception
java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1355)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1034)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3951)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4225)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:904)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:867)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1190)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:292)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1305)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1569)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1578)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1558)
at java.lang.Thread.run(Unknown Source)
问题的原因似乎是没有找到javax.faces.webapp.FacesServlet,但是这个类的包我是放在classpath中的,在eclipse的"Libraries"中可以看到。这是为何?
为什么Tomcat会到WEB-INF/classes里面去找这个文件?
我花了整整一天的时间来解决这个问题。
参考了这两篇文章
1.http://dev.eclipse.org/mhonarc/lists/wtp-jsf-dev/msg00158.html
2.http://forum.java.sun.com/thread.jspa?forumID=427&threadID=598929
第一步:
将CLASS_PATH里面的jar包部署到WEB-INF目录中。这是在项目的属性中配置的。选择“JSF Library Refererences”,选中“Deploy jars to WEB-INF/lib”。
第二步:
这时候出现了“java.lang.NullPointerException”错误,内容为 “javax.faces.webapp.FacesServlet.init”。根据第二篇文章,出现这样的问题是因为 FactoryFinder.getFactory()工厂方法没能正确地返回相应的工厂。这是配置问题,重新配置
<listener>
<listener-class>
com.sun.faces.config.ConfigureListener
</listener-class>
</listener>
并删除<load-on-starup>1</load-on-starup>标签就可以了
ps:自己测试时,可能版本不同,未找到“JSF Library References”选项,于是直接在/WEB-INF下建/lib文件夹并负责相关jsf jar包到目录下,未出异常,可运行
- 顶
FacesServlet (Java EEWTP/JSF问题的解决--java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet相关推荐
- jsf项目启动报:java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet
java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet的错误,尝试了很多的很多的方法,也无疾而终. 解决方法: (1) ...
- javax.faces.webapp.FacesServlet
web项目创建后执行报:javax.faces.webapp.FacesServlet java.lang.ClassNotFoundException: javax.faces.webapp.Fac ...
- 控制台报错:java.lang.ClassNotFoundException: javax.xml.bind.JAXBException之解决方法
控制台报错:java.lang.ClassNotFoundException: javax.xml.bind.JAXBException之解决方法 参考文章: (1)控制台报错:java.lang.C ...
- java.lang.ClassNotFoundException:javax.xml.bind.DatatypeConverter【解决办法】
遇到的问题 java.lang.ClassNotFoundException:javax.xml.bind.DatatypeConverter 原因:这有可能是因为SpringBoot项目结合jwt进 ...
- java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter 报错的解决办法
如果你在使用 JWT 处理登录时,出现 java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter 这样的报错信息. 其主要原 ...
- Caused by: java.lang.ClassNotFoundException: javax.persistence.Entity
1.错误描写叙述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -he ...
- Caused by: java.lang.ClassNotFoundException: javax.persistence.NamedStoredProcedureQuery
1.错误描写叙述 2014-7-12 21:06:37 org.hibernate.engine.jdbc.internal.LobCreatorBuilder useContextualLobCre ...
- 金蝶中间件AAS部署应用报错之:java.lang.ClassNotFoundException: javax.persistence.SynchronizationType
在金蝶中间件AAS应用服务器上部署SpringBoot应用时遇到部署不成功的情况,发现控制台报错信息具体如下: apusic.web.webtool.war./admin-HTTPHandler-5- ...
- `Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
在执行java包时,遇到了Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter 错误. 原因是因为 ...
最新文章
- 纯CSS 实现组织架构图,学习
- Spring的事件发布机制
- hosts 文件与 ipv6
- 轨迹相似性度量方法总结
- 使用C#和MSMQ开发消息处理程序
- 所谓厉害的人,遇到问题时的思维模式与我们的差别在哪?(转自知乎)
- php跨域有那些方法,PHP跨域访问的3种方法
- 松下PLC连接海创-IIoT平台案例
- 各种redhat版本下载
- 一款超好用的企业级URL采集软件(Msray-plus)
- MYSQL攻击全攻略
- JUNIPER防火墙网页无法登陆时后台配置
- 分布式服务器中的数据安全问题及其解决办法
- pywintypes.error: (6, ‘SetClipboardData‘, ‘句柄无效。‘)
- 接口测试平台代码实现2:本平台项目目录解析
- arduino和stm32哪个更好学?
- python对接蚂蚁金服支付宝
- c语言用库函数求正弦数,用C语言求正弦值?
- Eclipse使用c3p0连接池出现A ResourcePool could not acquire a resource from its primary factory or sour错误
- 商城项目-商品规格数据结构
热门文章
- 该来的年终总结,还是来了
- ubuntu串口调试工具kermit和minicom
- Python札记 -- 测试优先
- GoLang 抽奖系统 设计
- CentOS (linux) 启动错误 *** Run 'setenforce 1'to reenable. 解决
- js:webpack插件BannerPlugin添加版权信息
- Educoder - Java类和对象之static关键字之求圆环面积和周长
- maven3实战之仓库(仓库搜索功能)
- sqlitespy可以打开MySQL吗_SQLite 数据库访问
- Python random模块(获取随机数)常用方法和使用例子