Точная информация о версии реализации JSF доступна в файле /META-INF/MANIFEST.MF
файла JAR реализации JSF. Обычно он располагается в нижней части файла манифеста следующим образом:
Implementation-Title: Mojarra
Implementation-Version: 1.2_12-b01-FCS
Implementation-Vendor: Sun Microsystems, Inc.
Файл JAR можно открыть с помощью инструмента ZIP. В случае Sun RI / Mojarra имя файла - jsf-impl.jar
, иногда к нему уже добавляется точный номер версии, например jsf-impl-1.2_12-b01-FCS.jar
. Если вы используете реализацию JSF, предоставленную JBoss 4.3.x, то вы можете найти файл в папке $JBOSS_HOME/server/<Profile>/deploy/jboss-web.deployer/jsf-libs
. Если вы предоставили свою собственную реализацию JSF в /WEB-INF/lib
и настроили web.xml
, чтобы указать JBoss использовать ее вместо этого, то вам нужно проверить ее в той, которая указана в /WEB-INF/lib
.
Или вы можете получить это программно:
Package jsfPackage = FacesContext.class.getPackage();
String implTitle = jsfPackage.getImplementationTitle();
String implVersion = jsfPackage.getImplementationVersion();
String implVendor = jsfPackage.getImplementationVendor();
Что касается faces-config.xml
, с его помощью вы также можете контролировать, для какой версии JSF разработано приложение. Таким образом, если вы объявили, что он соответствует спецификации JSF 1.1, то даже реализация JSF 1.2 / 2.0 будет работать в JSF 1.1 «режим совместимости». Но вы не можете объявить, что она соответствует более новой версии, такой как JSF 1.2 / 2.0, когда вы на самом деле используете реализацию JSF 1.1. Он либо выдаст ошибку, либо будет проигнорирован.