Как установить один 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 ответ

Решение

Вот ручная процедура:

  1. экстракт javax.faces.jar с помощью инструмента ZIP. Вы получите 3 папки com, javax а также META-INF,

  2. пак com а также META-INF папки в jsf-impl.jar с помощью инструмента ZIP.

  3. Затем удалите все файлы / подпапки в META-INF кроме MANIFEST.MF,

  4. пак javax а также META-INF папки в jsf-api.jar с помощью инструмента ZIP.

  5. Продолжайте здесь с этими 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 больше не создаются.

Другие вопросы по тегам