问题描述
我正在尝试在JSF中使用一个简单的hello world应用程序,但是基于tomcat在启动时抛出的异常,我看到FacesServlet
尚未初始化.我有必需的jar
文件myfaces-api, bundle, impl
和公用的beanutils,编解码器,集合,摘要器,日志记录.除此之外,我在SO上阅读了另一个问题,我还需要jsf-api.jar and jsf-impl.jar
,我也将其放置在中并添加到了构建路径中
I am trying out a simple hello world app in JSF but based on the exception thrown by tomcat on start I see that FacesServlet
is not getting initialized. I have the required jar
files myfaces-api, bundle, impl
and commons beanutils, codec, collections, digester, logging. Apart from that I read in another question on SO that I would also required jsf-api.jar and jsf-impl.jar
which I also placed in WEB-INF/lib
and added to build path
仍然没有运气.我正在使用Eclipse和Tomcat 7在Ubuntu上进行开发
Still no luck. I am developing on Ubuntu, using Eclipse and Tomcat 7
这是我的web.xml
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Doom</display-name>
<display-name>JavaServerFaces</display-name>
<!-- Change to "Production" when you are ready to deploy -->
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<!-- Welcome page -->
<welcome-file-list>
<welcome-file>faces/welcome.xhtml</welcome-file>
</welcome-file-list>
<!-- JSF mapping -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Map these files with JSF -->
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
</web-app>
这是例外
java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1062)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1010)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4935)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5262)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5257)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
推荐答案
2周后,我找到了答案.一如既往地非常简单.您需要同时复制
After 2 weeks i found the answer. very simply as always in the end. you need to copy both
jsf-api.jar
jsf-impl.jar
到tomcat lib
.在project
lib中拥有它似乎不起作用.
To the tomcat lib
. having it in the project
lib does not seem to work.
这篇关于无法在Tomcat 7中初始化FacesServlet-ClassNotFoundException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!