2011-07-28 49 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。