JSP 내부에 던져진 예외의 취급을 어떻게 제어합니까?
-
21-08-2019 - |
문제
나는 다른 JSP를 포함하는 JSP가 있습니다. <jsp:include>
. 또한 표준 오류 페이지 설정이 있습니다. 문제는 포함 된 파일 내부에서 예외가 발생하면 포함 된 JSP로 "버블 업"하지 않는다는 것입니다. 대신 포함 된 JSP를 처리하여 오류 페이지를 중간에 삽입합니다.
이상하게도 오류가 발생한 라인에 오류 페이지의 출력을 삽입하지도 않습니다. 예를 들어, 포함 된 JSP의 600 행에서 예외가 발생하면 처음 300-400 줄에서 출력을 볼 수 있다면 오류 페이지 (출력 HTML에서)를 참조하십시오.
그러한 경우에 포함 된 파일의 처음 300-400 줄 대신에, 내가 볼 수있는 것은 포함 된 페이지의 출력이 전혀 나타나지 않는다는 것은 단지 오류 페이지 출력. 이것이 가능합니까, 아니면 포함 된 파일의 버퍼링에 문제가 있습니까?
아, 그리고 나는 이미 포함 태그에서 "flush = 'true'"를 설정하려고 시도했고, Includer와 Includee 모두에서 모든 것을 시도/잡기로 래핑하려고 시도했지만 그 중 어느 것도 도움이되지 않았습니다.
해결책
큰 버퍼를 사용합니다 (<%@ page buffer="1024kb" %>
) 그리고 flush="false"
포함 작업을 위해?
다른 팁
원래 "버블 업"문제는 웹 컨테이너에 따라 다를 수 있습니다. WebSphere 7을 사용하고 다른 WebSphere 버전과 다른 방식으로 작동합니다. 포함 된 페이지의 예외는 Includer JSP로 전파되지 않습니다. 포함 된 페이지에 대해 정의 된 오류 페이지가 없으면 예외 메시지가 출력 스트림에 인쇄됩니다.
WebSphere 7의 경우 JSP를 통해 예외가 거품을 일으킬 수있는 Followng 매개 변수를 찾았습니다. tag : com.ibm.ws.webcontainer.dispatcherRethrowSerror는 다음과 같습니다. 여기에 추가 정보가 있습니다. http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=%2fcom.ibm.websphere.express.doc%2finfo%2fexp%2fae%2frweb_custom_props.html
다른 웹 컨테이너의 경우 아직이 문제를 경험하지 않았습니다.