Как заставить 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.