如何将 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.jar
和 jsf-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 视图状态加密
如何使用 netbeans 8.2 在 Wildfly 13 中运行 jsf mojarra 2.3?