Можно ли использовать JSF 2.0 с сервером приложений Websphere версии 7.x

Можно ли использовать JSF 2.0 с WebSphere Application Server версии 7.x?

Если так, то как?

8 ответов

В WebSphere Infocenter указывается, что правильным способом перехода к альтернативной реализации JSF является создание общей библиотеки WebSphere с включенной опцией изолированного загрузчика классов.

Любые модули, которым требуется JSF 2, будут связаны с новой общей библиотекой, и тогда приложение будет запускаться с JSF 2 вместо JSF 1.2.

Также необходимо установить пакет исправлений 7.0.0.19 или новее.

Шаг за шагом настройте MyFaces 2.0 на WebSphere Application Server v7 в качестве общей библиотеки, как рекомендует IBM: http://wasbehindtheglass.blogspot.co.uk/

Я применил аналогичные шаги для Majorra/JSF 2.0.4 и создал общую библиотеку, используя только jsf-api.jar и jsf-impl.jar. Как сказал @Ian McLaird, требуются WAS 7.0.0.19 и JSF 2.0.4. JSF 2.1.x требует Servlet 3 и не поддерживается WAS7

Мой опыт:

-> WAS 7.0.0.11 в Windows

-> javax.faces-2.0.11.jar в WEB-INF/lib моего приложения War

-> БЫЛО общие библиотеки с javax.faces-2.0.11.jar с изолированным загрузчиком классов

-> БЫЛО общие библиотеки, связанные с моим военным приложением

-> Без изменений в Class Loader для экземпляра и приложения (PARENT_FIRST)

С этим conf (выше) приложение отлично работает с JSF 2.0 на WAS 7. Если я удаляю javax.faces-2.0.11.jar из моего приложения War, это не работает.

Я изо всех сил пытался решить это в течение нескольких дней. Вот как я это решил.

Используйте следующую библиотеку: javax.faces-2.1.7.jar

Если вы используете PrimeFaces 3.1: primefaces-3.1.1.jar

Экземпляр сервера приложений: загрузка класса - последний родитель

Экземпляр корпоративного приложения (модуль war): загрузка класса - последний родитель

Обязательно удалите все библиотеки контейнеров сервлетов, например, необходимые для Tomcat.

Следующее сработало для меня

  • Создайте общую библиотеку и поместите в нее ваши файлы JSF 2.0.
  • Также добавьте EL 2.2 API и EL-Impl 2.2 jars, поскольку JSF 2.0 явно нуждается в этом.
  • Добавьте эту библиотеку в ваше приложение и установите загрузчик классов как PARENT_LAST.

Измените web.xml следующим образом

 <context-param>
                <param-name>com.sun.faces.expressionFactory</param-name>
                <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
    </context-param>
    <listener>
        <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
    </listener>

Это оно.

Привет, я мог запустить свой сайт, используя эти библиотеки

librerias

Настройка в web.xml моего проекта

 <context-param>
    <param-name>com.sun.faces.expressionFactory</param-name>
    <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>

Настройка в websphere для загрузки моих библиотек (Parent Last)

С уважением

Websphere поставляется с JSF 1.2. И загружает его по умолчанию. Чтобы использовать другую библиотеку JSF (или любую другую библиотеку, предоставляемую WS, такую ​​как регистрация общего доступа), вам нужно изменить способ, которым загрузчик классов назначает приоритеты местоположениям. Они называют это "родительским последним", что означает загрузку ваших библиотек, а затем версий WS.

Спасибо вам, ребята!

Это работало с более новой версией javax.faces. Смотрите зависимости maven:

    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.faces</artifactId>
        <version>2.1.29-08</version>
    </dependency>
    <dependency>
        <groupId>javax.el</groupId>
        <artifactId>el-api</artifactId>
        <version>2.2</version>
    </dependency>
    <dependency>
        <groupId>com.sun.el</groupId>
        <artifactId>el-impl</artifactId>
        <version>2.2</version>
    </dependency>

Не забудьте добавить следующее в ваш web.xml:

<context-param>
   <param-name>com.sun.faces.expressionFactory</param-name>
   <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>

И, наконец, измените порядок загрузчика классов WebSphere приложения и модуля на (родительский последний) настройки: https://www.ibm.com/support/knowledgecenter/SSAW57_7.0.0/com.ibm.websphere.nd.doc/info/ae/ae/urun_rclassloader_inst.html

С уважением

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