2011-03-28 4 views
0

내 서블릿 코드의 일부 조건에 따라 오류 페이지로 리디렉션하려고합니다. 그러나 지금까지 아무것도 작동하지 않습니다.응답 sendRedirect주는 404 오류

그래서 내 응용 프로그램 서버로 weblogic 10.x를 사용하고 있습니다. 콘솔을 사용하여 관리되는 서버에 앱을 직접 배포 할 수 있습니다.

기본적으로 나는 그들을 .war 파일로 압축하고 webapps로 배포합니다.

public void doGet (HttpServletRequest request, HttpServletResponse response) 
     throws IOException , ServletException 
    { 
     try 
     { 
        throw new Exception("503_Exception") ;     
     } 
     catch(Exception e) 
     { 
        response.sendRedirect(response.encodeRedirectURL(HandleError.handle(e, request))); 
     } 
    } 


public class HandleError{ 
    public static String handle(Throwable t, javax.servlet.http.HttpServletRequest request) 
    { 
     String sErrorMsg = t.getMessage(); 

     if (sErrorMsg.equals("503_Exception")) { 
      request.setAttribute("msg", "INVALID SESSION"); 
      return "/jsp/error/custom.html"; 
     } 
     return "/default_error.html"; 
    } 
} 

전쟁 파일 구조

->jsp->error->custom.html 
->web-inf 
->web-inf->classes->project2->Class1.class 

에 http : // 컴퓨터 이름 : 3030/Application3 - Project2에 컨텍스트 루트가 ->로 재 지정 ->에 http : // 컴퓨터 이름 : 3030/JSP /error/custom.html - >> 곳없는 실제 컨텍스트 루트 ..

오류 404 - RFC 2068 하이퍼 텍스트 (TR)에서 찾을 수 없음 ansfer 프로토콜 - HTTP/1.1 : 10.4.5 404 서버는 요청-URI와 일치하는 것을 을 발견하지

을 찾을 수 없습니다. 상태가 임시 또는 영구적인지 여부에 대한 표시는 제공되지 않습니다.

서버가 클라이언트, 상태 코드 (금지) (403) 사용할 수 이 정보를 확인하고자하지 않는 경우

대신 사용할 수 있습니다. 서버가 알고있는 경우 410 (Gone) 상태 코드는 기존 자원을 영구적으로 사용할 수 없으며 전달 주소가없는 일부 내부적으로 환경을 설정할 수있는 메커니즘, 을 통해, 을 사용해야합니다.

하지만 난 줄 경우 -

response.sendRedirect(response.encodeRedirectURL(request.getContextPath() + HandleError.handle(e, request))); 

은 내가 는 오류 310 (순 :: ERR_TOO_MANY_REDIRECTS) 얻을 : 크롬과 FF의 오류너무 많은 재 방향 말한다.

누군가 나를 도울 수 있습니까? 사전에 감사합니다. :)

답변

2

처음에 request.getServletContext().getContextPath()을 붙이는 것이 좋은 방법입니다. 그러나 당신은 분명히 무한 리디렉션 루프에 들어서고 있습니다. 예외를 기록하는 것을 잊지 마십시오. 따라서 문제가 무엇인지 알 수 있습니다.