gpt4 book ai didi

jsf - 在JBoss AS/EAP/WildFly中升级JSF/Mojarra

转载 作者:行者123 更新时间:2023-12-03 08:36:24 28 4
gpt4 key购买 nike

如何在JBoss服务器中升级Mojarra,并告诉它使用给定的Mojarra 2.x JAR代替启动日志中指示的JBoss自己的jboss-jsf-api_2.1_spec-2.0.1.Final.jar

如果相关,那么我目前正在使用JBoss AS 7.1。

最佳答案

以下过程适用于 JBoss AS 7.2+ JBoss EAP 6.1+ JBoss WildFly 8+ ,并假定您已完全控制服务器的安装和配置。这将升级服务器范围内的默认 JSF版本:

  • 下载单个Mojarra的APIimpl文件(因此不下载单个javax.faces.jar文件)。当前最新的2.1.x版本是2.1.29,当前最新的2.2.x版本是2.2.14。假设您要升级到2.2.x。您可以从其Maven存储库分别下载它们:
  • jsf-api-2.2.14.jar
  • jsf-impl-2.2.14.jar
  • 确保JBoss已关闭。
  • /modules/system/layers/base/javax/faces/api/main更新JSF API:
  • 删除或备份旧的JAR文件(请勿将其保存在同一文件夹中,即使未重命名!)。
  • 在其中放置jsf-api-2.2.14.jar文件。
  • 打开module.xml文件并编辑<resource-root>以指定新文件名,如<resource-root path="jsf-api-2.2.14.jar"/>
  • /modules/system/layers/base/com/sun/jsf-impl/main中更新JSF impl:
  • 删除或备份旧的JAR文件(请勿将其保存在同一文件夹中,即使未重命名!)。
  • 在其中放置jsf-impl-2.2.14.jar文件。
  • 打开module.xml文件并编辑<resource-root>以指定新文件名,如<resource-root path="jsf-impl-2.2.14.jar"/>
  • 清理JBoss缓存/工作数据只是为了确保那里没有以前部署中悬挂的JAR的旧副本,这可能只会与新的JAR发生冲突:
  • 删除/standalone/data的所有内容(当然,自定义数据文件夹(如包含上传文件的文件夹除外))
  • 删除/standalone/deployments的所有内容
  • 删除/standalone/tmp的所有内容
  • 启动JBoss。现在,它应该对所有部署都使用新的JSF版本。

  • 相同过程适用于 JBoss AS 7.0 / 7.1 JBoss EAP 6.0 ,您只需要浏览 /modules/*而不是 /modules/system/layers/base/*,并且您需要在其中明确删除旧的 .index文件(如果有的话)(JBoss将自动创建一个) 。另外,如果API文件夹中的 module.xml缺少 <module name="com.sun.jsf-impl"/>中的 <dependencies>,那么您需要手动添加它。

    重要说明是,低于2.2.7的Mojarra 2.2.x版本将在部署期间在AS / EAP中失败,但有以下异常(exception): org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active contexts for scope type javax.faces.flow.builder.FlowDefinition。然后,您基本上有2个选择:降级到Mojarra 2.1.x,或升级到至少2.2.7或更高版本。

    如果您想升级到Maven不再提供2-JAR变体的 Mojarra 2.3 ,则需要按照以下步骤基于 javax.faces.jar文件手动创建2-JAR变体: How to install one jar variant of JSF (javax.faces.jar) on WildFly

    关于jsf - 在JBoss AS/EAP/WildFly中升级JSF/Mojarra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17085717/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com