Может ли JSF 2.0 использоваться с WebSphere Application Server версии 7.x?
Если да, то как?
Может ли JSF 2.0 использоваться с WebSphere Application Server версии 7.x?
Если да, то как?
WebSphere Infocenter указывает, что правильный путь к альтернативной реализации JSF заключается в создании общей библиотеки WebSphere с включенной опцией изолированного класса.
Любые модули, которые нуждаются в JSF 2, будут связаны с новой общей библиотекой, а затем приложение начнет работу с JSF 2 вместо JSF 1.2.
Кроме того, необходимо установить пакет исправлений 7.0.0.19 или более поздней версии.
Websphere поставляется с JSF 1.2.something и загружает это по умолчанию. Чтобы использовать другую библиотеку JSF (или любую другую библиотеку, которую предоставляет WS, например, ведение общедоступных записей), вам необходимо изменить способ определения приоритетов для классов. Они называют его "parent last", что означает загрузку ваших библиотек, а затем версий WS.
Я изо всех сил пытался решить это в течение нескольких дней. Вот как я это решил.
Используйте следующую библиотеку: javax.faces-2.1.7.jar
Если вы используете PrimeFaces 3.1: primefaces-3.1.1.jar
Экземпляр сервера приложений: Загрузка классов - последний родительский
Экземпляр Enterprise Application (военный модуль): Загрузка класса - родительский последний
Обязательно удалите все библиотеки контейнеров сервлетов, такие как те, которые необходимы Tomcat.
Пошаговая настройка 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
- > WAS Общие librairies с javax.faces-2.0.11.jar с изолированным загрузчиком классов
- > WAS Общие librairies, связанные с моим War App
- > Никаких изменений в Class Loader, например, и приложения (PARENT_FIRST)
С помощью этого conf (выше) приложение отлично работает с JSF 2.0 на WAS 7. если я удалю javax.faces-2.0.11.jar из моего приложения War, он не работает.
После меня работали
Измените 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>
Вот оно.
Привет, я могу запустить свой сайт с помощью этих библиотек
Настройка в 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)
Привет
Спасибо, ребята!
Он работал с более новой версией 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 приложения и модуля на настройки (parent last): https://www.ibm.com/support/knowledgecenter/SSAW57_7.0.0/com.ibm.websphere.nd.doc/info/ae/ae/urun_rclassloader_inst.html
Привет