2011-10-28 2 views
0

Websphere와 함께 타사 J2EE 응용 프로그램을 응용 프로그램 서버로 구현하고 있습니다. 나는 JSP를 (callingPage) 중 하나에 다음 코드누가 내 예외를 먹었습니까? (jsp dispatcher.include)

try { 
    RequestDispatcher dispatcher = request.getRequestDispatcher(includePage); 
    dispatcher.include(request,response); 
} catch (Exception Ex) { 
    // process the excpetion 
    // and create appropriate response object with body as XML string 
} 

includePage는 JSP 페이지이고 응답이 때 예외 XML 본체가없는 것으로 예상된다 있습니다. 특정 시나리오에서 includePage는 유효한 (사용자 지정) 예외를 던지고 있습니다. 그러나 컨트롤은 callingPage에서 블록을 catch하지 않습니다.

응답을 조사한 결과, 응답 본문에 응답 코드가 500 인 문자열 <HTTP ResponseCode><CustomExceptionType><CustomException.getMessage()>이 포함되어 있음을 발견했습니다. 응답 본문은 XML 문자열이 아니기 때문에 구문 분석 예외 다운 스트림을 수신합니다.

응용 프로그램 web.xml을 검사했는데 코드 500에 대한 사용자 정의 오류 페이지가 지정되어 있지 않습니다. Websphere 관리자와 논의한 결과 많은 도움이되지 않을 수있었습니다 (인스턴스와 관련된 특정 작업을 수행하지 않았다고 주장합니다). 애플리케이션 공급 업체 지원 팀은 Websphere 인스턴스에서 테스트하여 작동하는지 확인합니다. 그들에 따르면 그것은 Websphere 구성이어야합니다.

J2EE 프레임 워크 또는 Websphere에 대한 지식이 제한적입니다. 기존 검색어를 검색하려고했지만 가능한 원인을 파악하지 못했습니다.

답변

1

당신은 아마 이미 해결했지만, 단지의 경우 :

는 응답 상태 코드 또는 설정 헤더를 변경할 수 없습니다 http://docs.oracle.com/javaee/6/api/javax/servlet/RequestDispatcher.html

포함 된 서블릿에 따르면; 어떤 변경 시도도 무시됩니다.

나는 그것이 당신의 예외가 상실되고있는 이유 인 것으로 의심됩니다 (그러나 확실하지 않습니다).

+0

Websphere의 사용자 정의 속성을 com.ibm.ws.webcontainer.dispatcherRethrowSER 컨테이너에 설정하고 false로 설정하여 문제가 해결되었습니다. 세부 정보는 http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=%2Fcom.ibm.websphere.express.doc%2Finfo%2Fexp%2Fae%2Frweb_custom_props.html – Max

관련 문제