为了账号安全,请及时绑定邮箱和手机立即绑定

升级JBossAS/EAP/WildFly中的JSF/mojarra

升级JBossAS/EAP/WildFly中的JSF/mojarra

holdtom 2019-07-25 14:14:39
升级JBossAS/EAP/WildFly中的JSF/mojarra如何在JBossServer中升级mojarra,并告诉它使用给定的mojarra2.x JAR而不是JBossOnjboss-jsf-api_2.1_spec-2.0.1.Final.jar如启动日志中所示?如果这与此相关,我目前正在使用JBoss作为7.1。
查看完整描述

2 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

以下程序适用于JBOSS AS 7.2+, JBOSS EAP 6.1+,和JBossWildFly 8+并假定您完全控制了服务器的安装和配置。这将升级服务器范围内的服务器。违约JSF版本:

  • 下载个别的mojarra

    API

    推动

    文件(因此不是单个

    javax.faces.jar

    档案)。当前最新2.1.x版本为2.1.29,当前最新2.2.x版本为2.2.14。让我们假设您希望升级到2.2.x。您可以从它们的Maven存储库单独下载它们:
  • 确保JBoss关机。
  • 更新JSFAPI

    /modules/system/layers/base/javax/faces/api/main:

    • 删除或备份旧JAR文件(不要将其保存在同一个文件夹中,甚至不能重命名!)。
    • jsf-api-2.2.14.jar

      档案在里面。
    • 打开

      module.xml

      文件和编辑

      <resource-root>

      若要指定新文件名,请参见

      <resource-root path="jsf-api-2.2.14.jar"/>

  • 更新JSF

    /modules/system/layers/base/com/sun/jsf-impl/main:

    • 删除或备份旧JAR文件(不要将其保存在同一个文件夹中,甚至不能重命名!)。
    • jsf-impl-2.2.14.jar

      档案在里面。
    • 打开

      module.xml

      文件和编辑

      <resource-root>

      若要指定新文件名,请参见

      <resource-root path="jsf-impl-2.2.14.jar"/>

  • 清理JBossCache/工作数据只是为了确保没有以前部署中挂起的JAR的旧副本,这可能只会与新的JAR发生冲突:
    • 全部垃圾

      /standalone/data

      (当然,除了自定义的数据文件夹,比如包含上传文件的文件夹)
    • 全部垃圾

      /standalone/deployments

    • 全部垃圾

      /standalone/tmp

  • 启动JBoss。现在,它应该在所有部署中使用新的JSF版本。

同样的程序适用于JBOSS AS 7.0/7.1JBOSS EAP 6.0,您只需浏览/modules/*而不是/modules/system/layers/base/*,您需要显式删除旧的.index文件在那里,如果有的话(JBoss将自动创建一个)。另外,如果module.xml在api文件夹中未找到<module name="com.sun.jsf-impl"/><dependencies>,然后您需要手动添加它。

重要的注意事项是,在部署过程中,早于2.2.7的mojarra2.2.x版本将在AS/EAP中失败,但有以下例外:org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active contexts for scope type javax.faces.flow.builder.FlowDefinition..然后,您基本上有两个选项:降级到mojarra2.1.x,或者升级到至少2.2.7或更高版本。

如果你想升级到Mojarra 2.3,它不再在Maven上提供2-jar变体,您需要手动创建基于javax.faces.jar按照此过程存档:如何在WildFly上安装JSF的JAR变体(javax.faces.jar).




查看完整回答
反对 回复 2019-07-26
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

我遵循了这些指令,但是当我运行jboss7.1服务器时,我在部署过程中得到了错误关键错误:java.lang.NoClassDefFoundError:com/sun/Faces/SPI/InjectionProvider

查看完整回答
反对 回复 2019-07-26
  • 2 回答
  • 0 关注
  • 286 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信