2016-03-09 15 views
8

Desidero utilizzare JSF 2.3 sulla mia applicazione, ma WildFly utilizza la variante 2 JAR per 2.2.Come installare una variante jar di JSF (javax.faces.jar) su WildFly

Oracle ha detto qui https://javaserverfaces.java.net/2.3/download.html che non rilascerà una variante JAR 2.3 2.

+0

E WildFly non può utilizzare una variante di un vaso? È detto da qualche parte? – Kukeltje

+0

'javax.faces.jar' è pensato solo per GlassFish. Il resto è simile http://balusc.omnifaces.org/2014/10/jsf-22-tutorial-with-eclipse-and-wildfly.html#UpgradeMojarraInWildFly, http://stackoverflow.com/a/17085879/1391249 – Tiny

risposta

10

Ecco la procedura manuale:

  1. estratto javax.faces.jar con uno strumento ZIP. Riceverai 3 cartelle com, javax e META-INF.

  2. Pack com e META-INF cartelle in jsf-impl.jar con uno strumento ZIP.

  3. Poi, eliminare tutti i file/cartelle in META-INFtranne di MANIFEST.MF.

  4. Pack javax e META-INF cartelle in jsf-api.jar con uno strumento ZIP.

  5. Continua qui con quei JAR: Upgrade JSF/Mojarra in JBoss AS/EAP/WildFly.


Per l'interessato, JBoss AS e wildfly presenta internamente una separazione modulare di API Java EE e file impl. I file JAR separati jsf-api.jar e jsf-impl.jar sono ancora necessari. Il motivo non è molto tecnico, ma solo un servizio extra per forzare gli sviluppatori a programmare contro le librerie giuste. Solo i moduli API sono esposti durante la compilazione (di solito, tramite il plugin integrato IDE che li aggiunge a "build path"). Ciò dovrebbe evitare che gli utenti accidentalmente trovino, importino e utilizzino classi di implementazione come quelle nel pacchetto com.sun.faces.*.

Già dalla versione 1.x, l'implementazione di JSF Mojarra era composta da due file JAR: jsf-api.jar e jsf-impl.jar. L'API JAR conteneva le classi javax.faces.* e il JAR di implementazione conteneva le classi com.sun.faces.*. Dal momento che la modifica del sistema di costruzione è conforme alle regole Java EE Maven, sia le API che le classi di implementazione sono state unite in un singolo file javax.faces.jar, vedere anche issue 2028 (avviato con Mojarra 2.1.6 a dicembre 2011). Dal momento che Mojarra 2.3, i file JAR separati non vengono più creati.

Problemi correlati