Как установить один jar-вариант JSF (javax.faces.jar) на WildFly
Я хочу использовать JSF 2.3 в своем приложении, но WildFly использует вариант 2 JAR для 2.2.
Оракул сказал здесь https://javaserverfaces.java.net/2.3/download.html что не выпустит версию 2.3 2 JAR.
1 ответ
Вот ручная процедура:
экстракт
javax.faces.jar
с помощью инструмента ZIP. Вы получите 3 папкиcom
,javax
а такжеMETA-INF
,пак
com
а такжеMETA-INF
папки вjsf-impl.jar
с помощью инструмента ZIP.Затем удалите все файлы / подпапки в
META-INF
кромеMANIFEST.MF
,пак
javax
а такжеMETA-INF
папки вjsf-api.jar
с помощью инструмента ZIP.Продолжайте здесь с этими JAR- файлами: Обновите JSF / Mojarra в JBoss AS / EAP / WildFly.
Для заинтересованных сторон JBoss AS и WildFly имеют модульное разделение API на основе Java EE и файлов impl. Разделенные JAR-файлы jsf-api.jar
а также jsf-impl.jar
все еще нужны. Причина не совсем техническая, а просто дополнительная услуга, которая заставляет разработчиков программировать против правильных библиотек. Только модули API доступны во время компиляции (обычно через интегрированный в IDE плагин, который добавляет их в "путь сборки"). Это должно исключить возможность случайного поиска, импорта и использования классов реализации, таких как com.sun.faces.*
пакет.
Уже с версии 1.x реализация JSF Mojarra состояла из двух файлов JAR: jsf-api.jar
а также jsf-impl.jar
, JAR API содержал javax.faces.*
классы и реализация JAR содержали com.sun.faces.*
классы. Поскольку изменение системы сборки соответствует правилам Java EE Maven, API и классы реализации были объединены в один javax.faces.jar
файл, см. также выпуск 2028 (началось с Mojarra 2.1.6 в декабре 2011 года). Начиная с Mojarra 2.3, отдельные файлы JAR больше не создаются.