Richfaces 3.x под управлением weblogic 8.1
-
20-09-2019 - |
Вопрос
Я разрабатываю небольшой проект, предназначенный для работы под управлением weblogic 8.1.Richfaces согласно документации утверждает, что поддерживает weblogic 8.1.
Weblogic 8.1 использует спецификацию сервлета 2.3 с jsp 1.2 Это работало в моей локально установленной версии weblogic 8.1, но при развертывании на сервере sparc у меня начинаются проблемы.Я справился с некоторыми начальными проблемами, но затем я получил сообщение об ошибке 500 и не смог получить подробности.Но после некоторых усилий у меня получилось вот что...
javax.servlet.ServletException: javax/servlet/jsp/JspContext at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:344) at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:346) at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:152) at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108) at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:214) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6987) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
JspContext
не является частью jsp 1.2, он новее.Я думаю, что это исключение изначально является ClassNotFoundException
или что-то подобное, учитывая сообщение.К исключению не привязана "причина".
Ниже приведены файлы jar, содержащиеся в моем веб-приложении.
antlr-2.7.6.jar asm-1.5.3.jar asm-attrs-1.5.3.jar cglib-2.1_3.jar commons-beanutils-1.6.jar commons-collections-3.2.jar commons-digester-1.5.jar commons-lang-2.4.jar commons-logging-1.0.3.jar dom4j-1.6.1.jar ehcache-1.2.3.jar hibernate-3.2.4.sp1.jar jsf-api-1.1_02.jar jsf-impl-1.1_02.jar jstl-1.0.jar jta-1.1.jar log4j-1.2.15.jar richfaces-api-3.1.6.SR1.jar richfaces-impl-3.1.6.SR1.jar richfaces-ui-3.1.6.SR1.jar xercesImpl-2.9.1.jar xml-apis-1.3.04.jar
У меня заканчиваются варианты, я попытаюсь выяснить, у кого есть зависимость от JspContext
класс...но если бы кто-нибудь мог дать мне некоторое представление, я был бы очень признателен.О, я не могу внести много изменений в производственный сервер веб-логики.Я бы предпочел вообще ничего не вносить, скорее всего, эти изменения будут denied
О, эта ошибка возникает при попытке просмотра страницы, значит, развертывание прошло успешно.
Решение
Хорошо, я решил свою проблему.Не так, как я хотел, но это работает (по крайней мере, насколько я знаю прямо сейчас).
После использования Google (снова) Я нашел комментарий, в котором кто-то упоминал использование richfaces 3.0.1.Теперь я видел, как многие люди говорят, что используют версию xxx даже 3.3.x.В конце концов, я заставил его работать с 3.1.6, но в версии weblogic для Windows (которая, возможно, была испорчена какой-то другой версией weblogic, которую я установил).
Итак, я изменил свой pom для maven, чтобы он зависел от:
<groupId>org.richfaces</groupId> <artifactId>richfaces</artifactId> <version>3.0.1</version>
Это не оптимально, но я думаю, что это работает.Некоторые ссылки на taglibrary нуждались в изменении, и пакеты в некоторой степени изменились.
Я мог бы опубликовать конфигурацию своего проекта для этого, если кому-нибудь это когда-нибудь понадобится.Заставить все это работать в weblogic 8.1 было непросто.Но справочная документация для 3.1.6, насколько мне известно, неверна, поскольку в ней говорится, что она поддерживает weblogic 8.1
Другие советы
jsp-api-2.1.jar
содержит отсутствующий класс, поэтому вы могли бы попробовать использовать его (либо заменить его в weblogic, либо попробовать в вашей /lib), но я не могу предсказать, что произойдет.