Мы работаем с JSF 1.2 на Websphere 7 и 8 в течение многих лет. Мы строим нашу войну с JSF в комплекте и всегда устанавливаем загрузчик классов как PARENT LAST.JSF Mojarra 2.2 на Websphere 8.x
Обновлено до JSF 2.2 (и RF4 и PF4 - до завершения миграции). Теперь мы сталкиваемся с проблемами развертывания на одном сервере (WAS 8.0, а также WAS 8.5).
Мы уже сделали аналогичный подход (с комплектом JSF и PARENT LAST). Приложение не запускается, он упоминает инициализацию Mojarra 2.2.11, но по запросу первой страницы, мы получаем ниже ошибок:
java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy34.markResourceRendered(Unknown Source)
at org.richfaces.resource.ResourceFactoryImpl.createMappedResource(ResourceFactoryImpl.java:366)
at org.richfaces.resource.ResourceFactoryImpl.createResource(ResourceFactoryImpl.java:343)
at org.richfaces.resource.ResourceHandlerImpl.createResource(ResourceHandlerImpl.java:266)
at javax.faces.application.ResourceHandlerWrapper.createResource(ResourceHandlerWrapper.java:137)
at org.apache.myfaces.custom.captcha.CAPTCHAResourceHandlerWrapper.createResource(CAPTCHAResourceHandlerWrapper.java:83)
at org.apache.myfaces.tomahawk.resource.UncompressedResourceHandlerWrapper.createResource(UncompressedResourceHandlerWrapper.java:109)
at org.apache.myfaces.tomahawk.resource.UncompressedResourceHandlerWrapper.createResource(UncompressedResourceHandlerWrapper.java:61)
at com.sun.faces.renderkit.html_basic.ScriptRenderer.encodeEnd(ScriptRenderer.java:104)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.richfaces.application.ServiceTracker$1.invoke(ServiceTracker.java:153)
... 52 more
Caused by: java.lang.ExceptionInInitializerError
at org.richfaces.resource.external.ResourceTrackerForMyFaces.<init>(ResourceTrackerForMyFaces.java:58)
at org.richfaces.resource.external.ResourceTrackerImpl.getImplementation(ResourceTrackerImpl.java:86)
at org.richfaces.resource.external.ResourceTrackerImpl.markResourceRendered(ResourceTrackerImpl.java:67)
... 57 more
Caused by: java.lang.NoSuchMethodException: org.apache.myfaces.shared_impl.renderkit.html.util.ResourceUtils.isRenderedStylesheet(javax.faces.context.FacesContext, java.lang.String, java.lang.String)
at java.lang.Class.throwNoSuchMethodException(Class.java:356)
at java.lang.Class.getMethod(Class.java:1018)
at org.richfaces.resource.external.ResourceTrackerForMyFaces.<init>(ResourceTrackerForMyFaces.java:49)
... 59 more
я явно видел много предложений с использованием разделяемой библиотеки, но я так же обнаружил, что CDI не поддерживается, если не используется реализация JSF по умолчанию, предоставляемая websphere.
Предпочитаемое решение, очевидно, должно было состоять в одной войне с развертыванием, но мне интересно, возможно ли это в websphere?
отметить также, что это приложение работает отлично на WebLogic и tomcat7
Вы упомянули Mojarra в названии. Сообщение об исключении указывает, что это MyFaces. – Tiny
@Tiny: AND Mojarra: com.sun.faces.renderkit.html_basic.ScriptRenderer.encodeEnd (ScriptRenderer.java:104) ... Может ли быть, что другие классы связаны с Tomahawk (некоторые из них, но shared_impl один может не ... См. https://issues.jboss.org/browse/RF-13901. Таким образом, OP вполне может быть прав, и на самом деле используется mojarra. – Kukeltje
Mojarra, безусловно, находится на пути к классам, а также tomahawk. websphere, есть и мои изменения, но мой вопрос точно направлен на то, как заставить мое приложение работать на WAS, как на всех других серверах, которые я пробовал. –