Weblogic 8.1에 따라 3.x
-
20-09-2019 - |
문제
나는 Weblogic 8.1에 따라 실행되는 작은 프로젝트를 개발하고 있습니다. 문서에 따르면 Richfaces는 Weblogic 8.1을 지원한다고 명시합니다.
Weblogic 8.1은 JSP 1.2와 함께 서블릿 사양 2.3을 사용합니다. 이것은 로컬에서 설치된 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의 일부가 아닙니다. 이 예외는 원래 a라고 생각합니다 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으로 작업했지만 Windows 버전의 Weblogic (내가 설치 한 다른 Weblogic 버전으로 오염되었을 수 있음)에서 작동했습니다.
그래서 나는 Maven이 다음에 의존 할 수 있도록 pom을 수정했습니다.
<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에서 시도해보십시오). 그러나 무슨 일이 일어날 지 예측할 수는 없습니다.