在 Servlet 2.4 容器上运行 JSF 2.0

发布于 2024-11-06 19:20:59 字数 136 浏览 1 评论 0 原文

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

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

As far as I know, JSF 2 requires servlet 2.5, so it doesn't run on JBOSS 4.05 (Tomcat 5.5). Unfortunately I have to deploy an application who uses JSF 2.0 and Primefaces on that environment.

Is there any hack to use that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空城仅有旧梦在 2024-11-13 19:20:59

JSF 2.0 很大程度上依赖于 EL 2.1 Servlet 2.5 的一部分,与 EL 2.0 是 Servlet 2.4 的一部分,但它不依赖于任何特定的 Servlet 2.5 特定 API。 Servlet 2.4 应该也能正常工作。因此,理论上,如果您在 /WEB-INF/lib 中提供自己的 EL 2.1 API 和实现,则可以让 JSF 2.0 在 Servlet 2.4 上工作。我在 Tomcat 5.5.33 上使用 /WEB-INF/lib 中的以下库进行了快速测试:

和一个 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!),带有一个简单的 带有一个带有 的按钮和一个简单的 @ViewScoped @ManagedBean > 适用于 Tomcat 5.5.33。在 JBoss 4.0.5 上尝试一下并彻底测试它。

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

JSF 2.0 depends heavily on EL 2.1 which is part of Servlet 2.5 and is a major change as opposed to EL 2.0 which is part of Servlet 2.4, but it does not depend on any particular Servlet 2.5 specific API. Servlet 2.4 should work as good. So in theory, you could get JSF 2.0 to work on Servlet 2.4 if you provide your own EL 2.1 API and implementation in /WEB-INF/lib. I did a quick test here on Tomcat 5.5.33 with the following libraries in /WEB-INF/lib:

  • el-api.jar file copied from lib folder of Tomcat 6.0.x
  • jboss-el.jar file (implements EL 2.1 and supports EL 2.2 like method invocation with arguments)
  • jsf-api.jar and jsf-impl.jar from Mojarra 2.0.x

And a Servlet 2.4 web.xml where the JBoss EL is been declared:

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

A simple JSF 2.0 Facelet (not JSP!) with a simple <h:form> with a button with <f:ajax> and a simple @ViewScoped @ManagedBean works for me on Tomcat 5.5.33. Give it a try on your JBoss 4.0.5 and test it thoroughly.

Note that you need a minimum of JDK 1.5, not JDK 1.4. Also note that your application is this way unportable to any Servlet 3.0 container due to presence of the Servlet 2.5 specific el-api.jar file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文