據我所知,JSF 2需要servlet 2.5,所以它不能在JBOSS 4.05(Tomcat 5.5)上運行。不幸的是,我必須部署在該環境中使用JSF 2.0和Primefaces的應用程序。在Servlet 2.4容器上運行JSF 2.0
有什麼黑客使用它?
據我所知,JSF 2需要servlet 2.5,所以它不能在JBOSS 4.05(Tomcat 5.5)上運行。不幸的是,我必須部署在該環境中使用JSF 2.0和Primefaces的應用程序。在Servlet 2.4容器上運行JSF 2.0
有什麼黑客使用它?
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
:
el-api.jar
文件從Tomcat 6.0.xjboss-el.jar
文件lib
夾複製(實現EL 2.1,並支持EL 2.2像參數的方法調用)從Mojarra 2.0.x
jsf-api.jar
和jsf-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容器都不適用。
好人,謝謝! 但我仍然有一個問題 - 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
嘗試PrimeFaces 2.x. 3.0具有Servlet 3.0特定的依賴關係。 – BalusC 2011-05-15 11:27:27