Pregunta

Actualmente estoy ejecutando una aplicación Legacy JSF en JBoss como 4.3. Creo que esto implementa JSF 1.2. Sin embargo, cuando miré las caras-config, vi que estaba usando el JSF 1.1 DTD.

¿Qué versión de JSF estoy usando?

¿Fue útil?

Solución

La información exacta de la versión de implementación de JSF está disponible en /META-INF/MANIFEST.MF Archivo del archivo JAR de implementación JSF. Por lo general, se encuentra cerca de la parte inferior del archivo manifiesto de la siguiente manera:

Implementation-Title: Mojarra
Implementation-Version: 1.2_12-b01-FCS
Implementation-Vendor: Sun Microsystems, Inc.

Se puede abrir un archivo JAR con una herramienta zip. En caso de Sun Ri / Mojarra, el nombre de archivo es jsf-impl.jar, a veces ya sufijo con un número de versión exacto como jsf-impl-1.2_12-b01-FCS.jar. Si está utilizando la implementación de JSF suministrada por JBoss 4.3.x, puede encontrar el archivo en $JBOSS_HOME/server/<Profile>/deploy/jboss-web.deployer/jsf-libs carpeta. Si suministró su propia implementación de JSF en /WEB-INF/lib y configurado web.xml Para decirle a JBoss que lo use en su lugar, entonces debe verificarlo en el que se suministra en /WEB-INF/lib en cambio.

O bien, puede obtenerlo programáticamente:

Package jsfPackage = FacesContext.class.getPackage();
String implTitle = jsfPackage.getImplementationTitle();
String implVersion = jsfPackage.getImplementationVersion();
String implVendor = jsfPackage.getImplementationVendor();

En cuanto a la faces-config.xml, con él, también puede controlar para qué versión JSF está diseñada la aplicación. Entonces, si declaró que conforma la especificación JSF 1.1, incluso una implementación JSF 1.2/2.0 se ejecutará en JSF 1.1 "Compatibilidad Modus". Pero no puede declarar que conforma una versión más nueva como JSF 1.2/2.0 cuando estás Realmente utilizando una implementación JSF 1.1. Se equivocará o se ignorará.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top