在 Servlet 2.4 容器上运行 JSF 2.0

2024-04-29

据我所知,JSF 2 需要 servlet 2.5,因此它不能在 JBOSS 4.05 (Tomcat 5.5) 上运行。不幸的是,我必须在该环境中部署一个使用 JSF 2.0 和 Primefaces 的应用程序。

有什么黑客可以使用它吗?


JSF 2.0 很大程度上依赖于EL 2.1 http://download.oracle.com/javaee/6/api/javax/el/package-summary.html它是 Servlet 2.5 的一部分,相对于 Servlet 2.5 来说是一个重大变化EL 2.0 http://download.oracle.com/javaee/6/api/javax/servlet/jsp/el/package-summary.html它是 Servlet 2.4 的一部分,但它不依赖于任何特定的 Servlet 2.5 特定 API。 Servlet 2.4 应该也能正常工作。因此,理论上,如果您提供自己的 EL 2.1 API 和实现,则可以让 JSF 2.0 在 Servlet 2.4 上工作/WEB-INF/lib。我在 Tomcat 5.5.33 上使用以下库进行了快速测试/WEB-INF/lib:

  • el-api.jar文件复制自lib的文件夹汤姆猫6.0.x http://tomcat.apache.org/download-60.cgi
  • jboss-el.jar https://maven.atlassian.com/content/repositories/jboss-releases/org/jboss/seam/jboss-el/2.0.0.GA/jboss-el-2.0.0.GA.jar文件(实现 EL 2.1 并支持 EL 2.2,类似于带参数的方法调用)
  • jsf-api.jar and jsf-impl.jar from 莫贾拉 2.0.x http://javaserverfaces.java.net/download.html

和 Servlet 2.4web.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 5.5.33 上工作。在 JBoss 4.0.5 上尝试一下并彻底测试它。

请注意,您至少需要 JDK 1.5,而不是 JDK 1.4。另请注意,由于 Servlet 2.5 特定的存在,您的应用程序无法以这种方式移植到任何 Servlet 3.0 容器el-api.jar file.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Servlet 2.4 容器上运行 JSF 2.0 的相关文章

随机推荐