How do I upgrade Mojarra in JBoss server and tell it use the given Mojarra 2.x JARs instead of JBoss own jboss-jsf-api_2.1_spec-2.0.1.Final.jar
as indicated in startup log?
If that's relevant, I am currently using JBoss AS 7.1.
Another key difference between JBoss EAP and WildFly relates to the development of MicroProfile applications. In WildFly, MicroProfile API are included out of the box in the full server distribution.
That being said, if you are planning to use WildFly in production systems, you are strongly advised to migrate to the latest version of WildFly, as you will hardly find users in the Community that can support older JBoss AS 5,6 or 7 releases.
In JBoss EAP, MicroProfile API are included in the Eclipse MicroProfile Expansion Pack (JBoss EAP XP) which is available as a patch stream, when using JBoss EAP XP manager. Therefore, you need to install JBoss EAP XP on the top of JBoss EAP to have the supported MicroProfile API with EAP.
The term “ JBoss application server ” has been used since the beginning, however to avoid confusion with the supported version, called JBoss Enterprise Application platform (JBoss EAP in short) it has been renamed to WildFly. The community version of WildFly is available at: www.wildfly.org
The below procedure applies to JBoss AS 7.2+, JBoss EAP 6.1+, and JBoss WildFly 8+ and assumes that you've full control over the server installation and configuration. This upgrades the server-wide default JSF version:
javax.faces.jar
file). Current latest 2.1.x version is 2.1.29 and current latest 2.2.x version is 2.2.14. Let's assume that you want to upgrade to 2.2.x. You can download them individually from their Maven repository:
jsf-api-2.2.14.jar
jsf-impl-2.2.14.jar
/modules/system/layers/base/javax/faces/api/main
:
jsf-api-2.2.14.jar
file in there.module.xml
file and edit <resource-root>
to specify the new file name as in <resource-root path="jsf-api-2.2.14.jar"/>
/modules/system/layers/base/com/sun/jsf-impl/main
:
jsf-impl-2.2.14.jar
file in there.module.xml
file and edit <resource-root>
to specify the new file name as in <resource-root path="jsf-impl-2.2.14.jar"/>
/standalone/data
(except of custom data folders like folder containing uploaded files, of course)/standalone/deployments
/standalone/tmp
The same procedure applies to JBoss AS 7.0/7.1 and JBoss EAP 6.0, you only need to browse in /modules/*
instead of /modules/system/layers/base/*
, and you need to explicitly delete the old .index
file there, if any (JBoss will autocreate one). Also, if the module.xml
in API folder misses <module name="com.sun.jsf-impl"/>
inside <dependencies>
, then you need to manually add it.
Important note is that Mojarra 2.2.x versions older than 2.2.7 will fail in AS/EAP during deployment with the following exception: org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active contexts for scope type javax.faces.flow.builder.FlowDefinition
. You've then basically 2 options: downgrade to Mojarra 2.1.x, or upgrade to at least 2.2.7 or newer.
In case you'd like to upgrade to Mojarra 2.3, which doesn't offer a 2-JAR variant anymore on Maven, you'd need to manually create the 2-JAR variant based on javax.faces.jar
file as per this procedure: How to install one jar variant of JSF (javax.faces.jar) on WildFly.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With