내 spring-mvc 웹 응용 프로그램에 접을 수있는 스택 추적 요소가있는 오류 페이지 (분명히 개발/디버그 옵션)가 있습니다. 이것은 잘 작동하는 데 사용되며 컨트롤러 (또는 때로는 JSP 엔진)에서 적절한 스택 추적을 표시합니다.JSP 오류 페이지에 JSP 오류가 발생했습니다.
: JSP를 오류 페이지로 만들 수 있습니까, 아니면 정적 HTML이어야합니까?
: 내가 뭘 잘못하고 있니?
이벤트의 체인 (내가 생각하는) 내 web.xml 파일에 정의 된 에러 핸들러에 의해 구동입니다 : 어딘가에 길을 따라
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/view/errors/internalError.jsp</location>
</error-page>
(메이븐 빌드 시스템으로 전환 업그레이드 부두, 봄 2.5 -> 3.0),이 오류 페이지가 이전과 같은 방식으로 작동하지 않는 것으로 나타났습니다. 하나의 문제로 같은 문제가 발생합니다. 예외 스택 추적은 컨트롤러에서 예외가 발생했을 때 이 아니고이지만 오류 페이지 자체에서 발생합니다.
- 봄 컨트롤러가 캐치되지 않는 예외 조회수 : 여기 일어나고있는 것 같다 무엇
javax.servlet.ServletException: javax.servlet.jsp.JspTagException: 500 /WEB-INF/jsp/admin/errors/internalError.jsp at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862) at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791) at org.apache.jsp.WEB_002dINF.jsp.admin.defaultParent_jsp._jspService(defaultParent_jsp.java:225) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
는 다음과 같은 이벤트 체인
throw new RuntimeException("no bananas")
이 예외없이 정의부터 스프링 기반 MultiActionController을 (에 의해 체포되어 - 오류 처리기가이 페이지에 대해 정의 된 경우) 예외가 다시 발생합니다. 봄의 DispatcherServlet에서만 다시 캐치됩니다.
- DispatcherServlet에는 예외의 유형에 대한 적절한 오류 페이지를 발견하고 뭔가 (아마도 내 web.xml을) 본다 : 이
- 봄이 다음보기에이 URL을 해결합니다 (내 오류 JSP)과 렌더링을 시도 .
- 이제 기본 parent jsp (* 아래 참조)에 문제가 발생하여 이번에는 jetty의 ServletHolder에 의해 JSP 예외가 발생합니다. 이 예외는 이제 web.xml을 통해 오류 JSP 페이지에 매핑됩니다.
- 여기에 무한 루프가 발생한다고 생각할 수 있습니다. 그러나 두 번째로는 정상적으로 작동하고 JSP 오류가 렌더링됩니다.
기본 부모 JSP를 렌더링 할 때 JSP 엔진이 죽는 것처럼 보입니다. 문제가있는 호스트는 org.apache.taglibs.standard.tag.common.core.ImportSupport
입니다. 나는 사람들이 WEB-INF 디렉토리에서 가져 오기와 관련이 있다고 말하는 몇몇 웹 게시물을 보았습니다.
// disallow inappropriate response codes per JSTL spec
if (irw.getStatus() < 200 || irw.getStatus() > 299) {
throw new JspTagException(irw.getStatus() + " " + stripSession(targetUrl));
}
HTTP 500 오류가 여기에 보이는 것처럼 보일지라도 문제가 발생합니다. 그러나 페이지 은 어떤 오류가 아니며에 있어야합니까?
와우, 놀랍게도 내 게시물에서 그걸 신성화 할 수있었습니다. 그것이 바로 내가하는 일입니다. – Justin
이것은 완전히 수정되었으므로 모든 페이지의 기본 부모는을 불필요하게 사용하고있었습니다. 여전히 오류 페이지의 오류가 올바르게 표시되는 이유를 이해하지 못합니다. 이후 기본 부모도 사용합니다. –
Justin
당신을 진심으로 환영합니다. – BalusC