如何将 Web 应用程序从 JSF Mojarra 2.0.5 升级到最新的 Mojara 2.1.9

Posted

技术标签:

【中文标题】如何将 Web 应用程序从 JSF Mojarra 2.0.5 升级到最新的 Mojara 2.1.9【英文标题】:How to upgrade web application from JSF Mojarra 2.0.5 to the latest Mojara 2.1.9 【发布时间】:2012-06-20 00:30:27 【问题描述】:

我想将我的 Web 应用程序从 Mojarra 2.0.5 升级到最新的 JSF Mojarra(今天的 2.1.9 是最新的);

我该怎么做?...涉及的步骤是什么?... 目前我的 web 应用程序 lib 文件夹有旧的 mojarra jar 'jsf-api.jar' 和 'jsf-impl.jar'。

如果有人能指导每一步,那将是一个很大的帮助。我在 Websphere 应用程序服务器 7.0.0.17

【问题讨论】:

我只用 javax.faces.jar 替换了这两个 JSF 库,它工作正常 只要您的服务器支持“Java Servlet3.0”,您就可以将“javax.faces.jar”用于 Mojarra JSF。如果您的服务器仅支持“Java Servlet2.5”,那么您需要为 Mojarra JSF 准备两个单独的 jar(jsf-api.jar 和 jsf-impl.jsr) 【参考方案1】:

只需将 Mojarra 2.0.5 中的两个 jsf-api.jarjsf-impl.jar 文件替换为 Mojarra 2.1.9 中的单个 javax-faces.jar 文件即可。

如果 Websphere 7 已经配置为使用类加载器模式“最后一个父”,那么您基本上不需要更改任何其他内容。但如果不是(这基本上意味着 webapp 提供的 Mojarra 2.0.5 实际上从未使用过,而是使用了 Websphere 自己的 JSF 库),那么您仍然需要将类加载器模式更改为“最后一个父级” ”。

【讨论】:

仅仅用 Mojarra 2.1.9 中的 javax-faces.jar 文件替换 jsf-api.jar 和 jsf-impl.jar 是行不通的。这是因为 Websphere 7 服务器仅支持“Servlet 2.5”,因此只能处理到 Mojarra 2.0.9;而 Mojarra 2.1.9 需要 java servlet3.0 作为先决条件才能工作 您只会错过 Servlet 3.0 的功能,例如 FacesServlet 的自动注册,但如果您在 web.xml 中手动注册它,它也能正常工作。否则,请坚持使用 Mojarra 2.0.9,顺便说一下,这也只是一个 javax.faces.jar 文件。

以上是关于如何将 Web 应用程序从 JSF Mojarra 2.0.5 升级到最新的 Mojara 2.1.9的主要内容,如果未能解决你的问题,请参考以下文章

在 JSF 1.2 中使用 Mojarra 配置 JSF 视图状态加密

Mojarra JSF 中的闪存异常

如何使用 netbeans 8.2 在 Wildfly 13 中运行 jsf mojarra 2.3?

Mojarra 版本是不是与 JSF 版本对应?

为 JSF 下载 Mojarra 库时,在 Eclipse 中显示错误“zip 文件为空”

FacesContext 在带有 JSF 2.3 的 Wildfly 14 中不可注入(Mojarra,主模块)