2011-05-13 106 views
6

據我所知,JSF 2需要servlet 2.5,所以它不能在JBOSS 4.05(Tomcat 5.5)上運行。不幸的是,我必須部署在該環境中使用JSF 2.0和Primefaces的應用程序。在Servlet 2.4容器上運行JSF 2.0

有什麼黑客使用它?

回答

12

JSF 2.0在很大程度上依賴於EL 2.1,它是Servlet 2.5的一部分,與作爲Servlet 2.4的一部分的EL 2.0相比有很大的變化,但它並不依賴於任何特定的Servlet 2.5特定的API。 Servlet 2.4應該可以很好地工作。所以從理論上講,如果您提供自己的EL 2.1 API和實現/WEB-INF/lib,則可以讓JSF 2.0在Servlet 2.4上工作。我做了一個快速測試在這裏Tomcat上33年5月5日與以下庫中​​/WEB-INF/lib

  • jsf-api.jarjsf-impl.jar和一個servlet 2.4 web.xml其中JBoss的EL被宣告:

    <context-param>  
        <param-name>com.sun.faces.expressionFactory</param-name> 
        <param-value>org.jboss.el.ExpressionFactoryImpl</param-value> 
    </context-param> 
    

    一個簡單的JSF 2.0的facelet(未JSP!)用一個簡單的<h:form><f:ajax>一個按鈕和一個簡單的@ViewScoped@ManagedBean作品對我來說Tomcat上33年5月5日。試試你的JBoss 4.0.5並徹底測試它。

    請注意,您至少需要JDK 1.5而不是JDK 1.4。另外請注意,由於存在Servlet 2.5特定的el-api.jar文件,您的應用程序對於任何Servlet 3.0容器都不適用。

  • +1

    好人,謝謝! 但我仍然有一個問題 - Primefaces沒有使用這種方法。錯誤:導致:org.xml.sax.SAXException:錯誤處理[jar:file:/HIDDEN/jboss-4.0.5.GA/server/default/./ tmp/deploy/tmp1314317090148712617primefaces-test-exp.war/WEB-INF/lib/primefaces-3.0.M2-SNAPSHOT.jar!/META-INF/[email protected],17] – 2011-05-15 03:53:59

    +1

    嘗試PrimeFaces 2.x. 3.0具有Servlet 3.0特定的依賴關係。 – BalusC 2011-05-15 11:27:27