Как заставить WebSphere AS 8 использовать конкретную реализацию JSF?

У меня есть старое корпоративное приложение, которое было разработано с использованием WAS 6.1, теперь моя компания пытается выполнить реализацию этого приложения в WAS 8. Но у меня возникают проблемы с рендерингом содержимого JSF, есть некоторые ссылки, по которым при нажатии отладчик JS сообщает: Uncaught ReferenceError: myfaces is not defined будучи отрендеренным HTML:

 onclick = "return myfaces.oam.submitForm ('top_nav: frmTopNav', 'top_nav: frmTopNav: lnkCP', null, [['default_sort', 'name']]]);"

Так что я думаю, что он плохо рендерится из-за разных версий JSF между моим старым приложением и WAS 8.

Теперь я решил форсировать его, загрузив MyFaces 1.1 с Tomahawk 1.1.7 и поместив их в папку WEB-INF/lib, и теперь он говорит java.lang.IllegalArgumentException - Class org.mything.LocaleViewHandler is no javax.faces.application.ViewHandler

Почему это может происходить?

Заранее спасибо.

2 ответа

Цитирование из информационного центра WAS 8, Настройка реализации JavaServer Faces

Если вы хотите использовать стороннюю реализацию JSF, которая не поставляется вместе с продуктом, то:

  • Оставьте конфигурацию MyFaces.
  • Добавьте сторонний слушатель к необходимому файлу web.xml.
  • Добавьте сторонние файлы реализации Java-архива (JAR) в приложение в качестве изолированной общей библиотеки и свяжите ее с вашим приложением.

На указанной выше странице вы можете найти подробную информацию о создании общих библиотек и связывании общих библиотек с приложениями или модулями.

Убедитесь, что вы используете загрузку классов PARENT_LAST.

В противном случае он сначала загрузит свои собственные библиотеки JSF 2.0, и ваш класс не будет соответствовать интерфейсу. Вы должны проверить, если вы могли бы обновить до MyFaces 2.0.

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