Пользовательская реализация JSF с пользовательской DI Framework - PullRequest
0 голосов
/ 31 октября 2018

Как и JSF 2.3, аннотации @ManagedBean и другие javax.faces.bean. * Устарели и заменены CDI JavaEE 6.

Я успешно создал образец JSF-проекта и развернул его в WebLogic с использованием серверных реализаций glassfish.jsf.jar и без реализации JSF и CDI в WEB-INF / lib.

Но я боюсь застрять в реализации Сервера, которая иногда может устареть + мое приложение ведет себя по-разному во время работы на разных серверах приложений, поэтому я думаю, что было бы лучше, если бы я контролировал реализацию JSF.

Последние 4 дня я потратил на поиск способа использования пользовательской реализации JSF (Mojarra или MyFaces) с использованием новых аннотаций CDI или любой другой инфраструктуры DI, но безуспешно.

Я понял, что должен использовать реализацию JSF и CDI на сервере JavaEE, если я хочу избавиться от @ ManagedAnnotations.

Мой вопрос: есть ли способ включить мою предпочитаемую реализацию JSF и CDI в мою WAR, которая будет развернута на разных серверах приложений, таких как WebLogic и WildFly.

Примечание: я нашел старый вопрос от 2013 года с ответом "Нет", но я хочу знать, является ли этот ответ еще действительным

Изменить 02/11/2018: Я успешно устанавливаю проект со встроенными JSF (Mojarra) и CDI (Weld) без каких-либо проблем на Tomcat Server. Я думаю, это потому, что Tomcat является контейнером сервлетов, поэтому нет конфликтов.

Я думаю, что моя проблема из-за конфликта между моим встроенным CDI и версией Weld для реализации на сервере. Я не могу найти решение, чтобы сделать мое приложение как черный ящик.

Я использовал этот weblogic.xml ложь

    <prefer-application-packages>
        <package-name>!javax.servlet.*</package-name>   
    </prefer-application-packages>

    <prefer-application-resources>
        <resource-name>!javax.servlet.*</resource-name>
    </prefer-application-resources>

1 Ответ

0 голосов
/ 03 ноября 2018

Другой ответ остается в силе. Но есть и другие (лучшие) варианты

1 Также предоставьте полный контейнер java-ee как часть вашего приложения.

2 Требуется минимальная версия определенных серверов приложений

3 Сообщите клиентам, что им нужны хотя бы конкретные версии определенных библиотек

...