将JBoss中的JSF/Mojarra升级为/EAP/WildFly
如何升级JBoss服务器中的Mojarra,并告诉它使用给定的Mojarra 2.x JARs,而不是JBoss自己的将JBoss中的JSF/Mojarra升级为/EAP/WildFly,jsf,jsf-2,jboss,wildfly,mojarra,Jsf,Jsf 2,Jboss,Wildfly,Mojarra,如何升级JBoss服务器中的Mojarra,并告诉它使用给定的Mojarra 2.x JARs,而不是JBoss自己的JBoss-jsf-api\u 2.1\u spec-2.0.1.Final.jar,如启动日志所示 如果相关的话,我目前正在使用JBoss AS 7.1。以下过程适用于JBoss AS 7.2+、JBoss EAP 6.1+和JBoss WildFly 8+,并假设您完全控制服务器的安装和配置。这将升级服务器范围的默认JSF版本: 下载单个Mojara和文件(因此不是单个的j
JBoss-jsf-api\u 2.1\u spec-2.0.1.Final.jar
,如启动日志所示
如果相关的话,我目前正在使用JBoss AS 7.1。以下过程适用于JBoss AS 7.2+、JBoss EAP 6.1+和JBoss WildFly 8+,并假设您完全控制服务器的安装和配置。这将升级服务器范围的默认JSF版本:
- 下载单个Mojara和文件(因此不是单个的
文件)。当前最新的2.1.x版本是2.1.29,当前最新的2.2.x版本是2.2.14。假设您想要升级到2.2.x。您可以从Maven存储库中单独下载它们:javax.faces.jar
- 确保JBoss已关闭
- 在
中更新JSF API:/modules/system/layers/base/javax/faces/API/main
- 删除或备份旧JAR文件(不要将其保存在同一文件夹中,甚至不要重命名!)
- 将
文件放入其中jsf-api-2.2.14.jar
- 打开
文件并编辑module.xml
以指定新文件名,如
- 在
中更新JSF impl:/modules/system/layers/base/com/sun/JSF impl/main
- 删除或备份旧JAR文件(不要将其保存在同一文件夹中,甚至不要重命名!)
- 将
文件放入其中jsf-impl-2.2.14.jar
- 打开
文件并编辑module.xml
以指定新文件名,如
- 清理JBoss缓存/工作数据,以确保没有来自以前部署的JAR的旧副本挂在那里,这可能只会与新的JAR发生冲突:
- 垃圾处理
的所有内容(当然,自定义数据文件夹除外,例如包含上载文件的文件夹)/standalone/data
- 清除
/standalone/deployments
- 清除
/standalone/tmp
- 垃圾处理
- 启动JBoss。它现在应该在所有部署中使用新的JSF版本
/modules/*
中浏览,而不是/modules/system/layers/base/*
,并且需要显式删除其中的旧.index
文件(JBoss将自动创建一个)。此外,如果API文件夹中的module.xml
未在
中找到
,则需要手动添加它
重要注意事项是,早于2.2.7的Mojarra 2.2.x版本在部署期间将在AS/EAP中失败,但出现以下异常:org.jboss.weld.context.ContextNotActivieException:weld-001303作用域类型javax.faces.flow.builder.FlowDefinition没有活动上下文
。然后基本上有两种选择:降级到Mojarra 2.1.x,或升级到至少2.2.7或更高版本
如果您想升级到Mojarra 2.3,它在Maven上不再提供2-JAR变体,您需要根据以下步骤基于
javax.faces.JAR
文件手动创建2-JAR变量:。我遵循了以下说明,但我在运行jboss7.1服务器时,在部署过程中遇到了严重错误::java.lang.NoClassDefFoundError:com/sun/faces/spi/InjectionProvider,有什么提示吗?我忘了提到我使用的是JSF2.2.3版本,我在CDIBean中使用了@ViewScope,因为我知道这个支持包含在JSF2.2中,我认为应该是“individual Mojarra 2.1.x”,而不是说“individual Mojarra 2.x”,因为JSF2.2需要不同的方法。2.x可能表示用户2.2。。也遵循相同的步骤。@Nambari:上述内容也适用于2.2。至少,在WildFly上,它不再有.index
文件,并且已经有了com.sun.jsf impl
模块条目权限。还没有在JBoss AS7/EAP6上尝试2.2。我添加了jsfi mpl模块作为依赖项。请看这里: