Cómo instalar una variante jar de JSF 2.3(javax.faces.jar) en WildFly
jsf-2.3 (1)
Aquí está el procedimiento manual:
-
Extrae
javax.faces.jar
con una herramienta ZIP. Obtendrá 3 carpetascom
,javax
yMETA-INF
. -
Empaquete
com
carpetascom
yMETA-INF
enjsf-impl.jar
con una herramienta ZIP. -
Luego, elimine todos los archivos / subcarpetas en
META-INF
exceptoMANIFEST.MF
. -
Empaquete las
javax
yMETA-INF
enjsf-api.jar
con una herramienta ZIP. -
Continúe aquí con esos JAR: Actualice JSF / Mojarra en JBoss AS / EAP / WildFly .
Para los interesados, JBoss AS y WildFly tienen internamente una separación modular de API basados en Java EE y archivos impl.
Los archivos JAR separados
jsf-api.jar
y
jsf-impl.jar
todavía son necesarios.
La razón no es realmente técnica, sino solo un servicio adicional para forzar a los desarrolladores a programar contra las bibliotecas correctas.
Solo los módulos API están expuestos durante el tiempo de compilación (generalmente, a través del complemento integrado IDE que los agrega a la "ruta de compilación").
Esto debería evitar que los principiantes encuentren, importen y usen accidentalmente clases de implementación como las del paquete
com.sun.faces.*
.
Ya desde la versión 1.x, la implementación de JSF Mojarra estaba compuesta por dos archivos JAR:
jsf-api.jar
y
jsf-impl.jar
.
El API JAR contenía las clases
javax.faces.*
Y la implementación JAR contenía las clases
com.sun.faces.*
.
Dado que el cambio del sistema de compilación cumple las reglas de Java EE Maven, tanto la API como las clases de implementación se fusionaron en un solo archivo
javax.faces.jar
, consulte también el
número 2028
(comenzó con Mojarra 2.1.6 en diciembre de 2011).
Desde Mojarra 2.3, los archivos JAR separados ya no se crean.
Quiero usar JSF 2.3 en mi aplicación, pero WildFly usa la variante 2 JAR para 2.2.
Oracle dijo aquí https://javaserverfaces.java.net/2.3/download.html que no lanzará una variante 2.3 2 JAR.