2011-07-28 47 views
1

我尝试了我的第一个richfaces项目。所以,我创建了一个新的JSF项目(使用JBoss的工具Eclipse插件)与选择下列选项:Servlet Faces Servlet不可用(richfaces 4,tomcat 7)

  • JSF2.0
  • JSFKickStartWithoutLibs

我也没有改变产生sample.The导出的WAR文件包含以下库

/WEB-INF/lib/common-annotations.jar 
    /WEB-INF/lib/commons-beanutils.jar 
    /WEB-INF/lib/commons-collections.jar 
    /WEB-INF/lib/commons-digester.jar 
    /WEB-INF/lib/commons-logging.jar 
    /WEB-INF/lib/cssparser-0.9.5.jar 
    /WEB-INF/lib/guava-r09.zip 
    /WEB-INF/lib/richfaces-components-api-4.0.0.Final.jar 
    /WEB-INF/lib/richfaces-components-ui-4.0.0.Final.jar 
    /WEB-INF/lib/richfaces-core-api-4.0.0.Final.jar 
    /WEB-INF/lib/richfaces-core-impl-4.0.0.Final.jar 
    /WEB-INF/lib/sacjava-1.3.zip 
    /WEB-INF/lib/standard.jar 

然后,我将WAR部署到Tomcat中,没有任何错误。但启动应用程序(index.html正确重定向到/pages/inputname.jsf)会导致Web浏览器出现以下错误。有在catalina.out中没有错误

HTTP Status 404 - Servlet Faces Servlet is not available 

type Status report 

message Servlet Faces Servlet is not available 

description The requested resource (Servlet Faces Servlet is not available) is not available. 

因为我不需要做任何改变所产生的样本项目,我想有一些缺少库。请帮我解决这个问题。

回答

7

你需要捆绑JSF实现瓶子即, jsf-api.jarjsf-impl.jar在你的WEB-INF\lib(Mojarra或MyFaces)里面,因为Tomcat没有捆绑JSF罐子

+0

不错。在Netbeans中,你只需要添加库JSF 2.1 – Jaider

+0

AFAIK,这可能是因为Mojarra 2.1.2及之后他们开始发布一个jar,不推荐使用两个jar方法。早于2.1.2的任何东西都在两个jar包中。 – Nikhil

2

该项目缺少JSF jar。我相信基于'JSFKickStartWithoutLibs'模板的项目是为了在JBoss AS上运行 - 它已经附带了JSF jar。