JavaServer Faces migration

In WebSphere® Application Server V8.0 and later, the default JavaServer Faces (JSF) implementation has changed to MyFaces.

Choosing the correct JSF implementation

After updating WebSphere Application Server, the initial state for all applications will be to use the MyFaces 2.0 JSF implementation. The Sun Reference Implementation (RI) is still optionally configurable for migrated applications that require behaviors specific to this implementation.
Deprecated feature: The RI is included in a deprecated state and only at the JSF 1.2 specification level.
Some examples when an application might require the RI include, but are not limited to:
  • Applications or dependant libraries that directly extend RI classes instead of JSF API classes.
  • Applications that use context parameters that are specific to the RI and do not have an equivalent context parameter in MyFaces.

IBM JavaServer Faces widget library

You must update widget library to version 3.1.6 or higher to enable compatibility with the changes in the JSF 2.0 implementation. Obtain a compatible version of JWL by upgrading IBM® Rational® Application Developer for WebSphere to 7.5.5.2 or later or installing IBM Rational Application Developer for WebSphere V8.0 and later.

Attention: JWL is deprecated and does not work with facelets-based JSF pages; it only works with JSF pages that are built using the JavaServer Pages (JSP) technology.

JSF 2.0 exception handling

The default behavior for JSF when unexpected exceptions occur during JSF lifecycle processing has changed. Prior to JSF 2.0, unexpected exceptions during lifecycle processing were hidden by the runtime environment. This behavior is no longer the case with JSF 2.0. Exceptions are now published to the new ExceptionHandler API, as described in section 6.2 of the JSF 2.0 specification.

Add the following code snippet in the <factory> section of the faces-config.xml file to any applications that have a requirement on the previously-defined behavior:
<exception-handlerfactory>
	 javax.faces.webapp.PreJsf2ExceptionHandlerFactory
</exception-handlerfactory>