2009-10-21 4 views
1

JavaServer Faces 같은는 교체 자바 서버 오류 페이지

같은

500 Internal Server Error

에서 표준 오류 페이지를 교체 할 수 있습니다 얼굴?

스택 추적 등과 같은 정보가 포함되어 있습니다.하지만 사용자가 페이지가 프로덕션 모드에있을 때 요청이 성공하지 못했다는 더 친숙한 페이지를 표시하려고합니다.

답변

5

개발 스택 추적은 JSF 구현에서 비롯된 것일 수 있습니다. 그것을 불가능하게하는 코드는 임프 멘 테이션에만 적용됩니다. 서블릿에서 MyFaces를 들어, web.xml이 초기화 매개 변수를 사용 :

<context-param> 
    <param-name>org.apache.myfaces.ERROR_HANDLING</param-name> 
    <param-value>false</param-value> 
    </context-param> 

을 당신이 일 구현 (Mojarra)를 사용하는 경우, 일부 com.sun.faces... 키 입력 매개 변수가있을 수 있습니다.

Facelets init parameterfacelets.DEVELOPMENT의 값을 확인하고 싶을 수도 있습니다 (true으로 설정하지 않았는지 확인하십시오).

오류 페이지를 지정하려면 일반적인 컨테이너 메커니즘을 사용할 수 있습니다. 서블릿의 경우 예외 유형이나 오류 코드에 맞춰 specifying a error pages inweb.xml이됩니다. 당신은 JSF 구현에 오류 처리에 대한 추가 공급 업체 특정 지원을 찾을 수

<error-page> 
    <exception-type>java.lang.Throwable</exception-type> 
    <location>/errorPage.faces</location> 
    </error-page> 

... 모든 throw 가능 객체를 잡으려고 - 당신은 자신의 문서를 확인해야 할 것이다.

+0

감사합니다. 훌륭한 답변입니다. 하나의 후속 질문이지만 catching 페이지에서 오류 메시지를 사용할 수 있습니까? (errorPage.faces) –

+0

아, 그런데 어디서 모든 com.sun.faces ... 키가있는 목록을 찾을 수 있습니까? 매개 변수? Myfaces를 사용하지 않고 Facelets와 함께 JSF 1.2를 사용하고 있습니다. –

+0

오류 메시지를 얻으려면 '# {requestScope ['javax.servlet.error.message ']}'표현식을 사용하십시오. 예외를 얻으려면,'javax.servlet.error.exception'을 사용하십시오 - Servlet spec을보고 요청 맵에 설정된 전체 목록 오류 값을 찾으십시오 (오류 코드가 필요한 경우 등). 당신은 글래스 피시 자주 묻는 질문에 인 Mojarra 컨텍스트 PARAMS 수 있습니다 http://wiki.glassfish.java.net/Wiki.jsp?page=JavaServerFacesRI#section-JavaServerFacesRI-WhatContextParametersAreAvailableAndWhatDoTheyDo – McDowell