IllegalArgumentException: com.ibm.ws.jsf.config.annotation.WASMyFacesAnnotationProvider не является org.apache.myfaces.spi.AnnotationProvider

Я пытаюсь развернуть приложение в Websphere 8.5.5. Я создал общую библиотеку для Websphere, которая включает jar-файлы myfaces 2.2 и другие зависимости, такие как общие коллекции.
Я также сделал загрузчик классов своего приложения как PARENT_LAST.< br> Когда я развертываю приложение, я получаю это исключение:

An error occured while initializing MyFaces: Class com.ibm.ws.jsf.config.annotation.WASMyFacesAnnotationProvider is no org.apache.myfaces.spi.AnnotationProvider
java.lang.IllegalArgumentException: Class com.ibm.ws.jsf.config.annotation.WASMyFacesAnnotationProvider is no org.apache.myfaces.spi.AnnotationProvider
at org.apache.myfaces.shared.util.ClassUtils.buildApplicationObject(ClassUtils.java:557)
at org.apache.myfaces.shared.util.ClassUtils.buildApplicationObject(ClassUtils.java:524)

person Laabidi Raissi    schedule 22.11.2013    source источник
comment
Упомянутая процедура отлично работает с Mojarra 2.2. Я использую общую библиотеку, содержащую только: jsf-api-2.2.4 и jsf-impl-2.2.4.   -  person Laabidi Raissi    schedule 10.12.2013
comment
Как вы подключаете общую библиотеку? вы прикрепляете его к экземпляру сервера или к приложению?   -  person Isaac    schedule 09.06.2014
comment
Окружающая среда/Общие библиотеки/Новое   -  person Laabidi Raissi    schedule 09.06.2014
comment
и в приложении: Ссылки на общие библиотеки/и добавить общую библиотеку из списка   -  person Laabidi Raissi    schedule 09.06.2014
comment
Вы установили общую библиотеку как изолированную?   -  person Isaac    schedule 09.06.2014
comment
Вы пытались отключить реализацию IBM JSF по умолчанию и включить реализацию Sun RI? www-01.ibm.com/support/knowledgecenter/SSEQTP_8.0.0/   -  person Magic Wand    schedule 20.07.2014
comment
Упомянутая процедура отлично работает с Mojarra 2.2. Так что я закончил, используя Mojarra вместо Myfaces, и все работало нормально.   -  person Laabidi Raissi    schedule 20.07.2014


Ответы (1)


Я пытался запустить более новую версию MyFaces на WAS 8.5.5 и столкнулся с похожей проблемой. Похоже, это конфликт между кодом, написанным IBM для поддержки своей встроенной версии MyFaces, и MyFaces, предоставляемым приложением или общей библиотекой.

IBM предлагает способ обойти эту проблему. Когда WAS 8.0 поставлялся, он предоставлял функцию, позволяющую выбирать «SunRI1.2» или «MyFaces» в качестве предоставленного сервером JSF. Установка по умолчанию значения «SunRI1.2» удалит предоставленные сервером MyFaces из пути к классам и позволит разработчику предоставить свои собственные.

  1. Выберите любое приложение
  2. Нажмите Параметры JSP и JSF.
  3. В разделе Реализация JSF измените раскрывающийся список на SunRI1.2.
  4. Нажмите ОК.
  5. Сохраните конфигурацию и перезапустите сервер
person Robert Dean    schedule 25.09.2014
comment
Есть ли способ установить это в дескрипторе развертывания? так что нам не нужно менять его постфактум? и потенциально вернуть его? - person VeenarM; 07.02.2017
comment
Хотя он отображается через настройки приложения, на самом деле он находится на уровне сервера. Каждое приложение на одном сервере будет затронуто. - person Robert Dean; 07.02.2017
comment
Ага, потом разобрался :) О, хорошо, что мы запрашиваем нашу собственную JVM для продакшена, потому что люди могут быть расстроены, если мы заставим их использовать свои собственные и реверсивные загрузчики, потому что мы :) - person VeenarM; 08.02.2017