Я пытаюсь перенаправить на страницу с ошибкой при некоторых условиях в коде моего сервлета.Но до сих пор ничего не получается.
Так что я использую weblogic 10.x в качестве сервера приложений.Я развертываю приложения непосредственно на управляемых серверах с помощью консоли.
Так что в основном я собираю их как файлы .war и развертываю как веб-приложения.
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://machineNAME:3030/Application3-Project2-context-root -> перенаправляет на -> http://machineNAME:3030/jsp/error/custom.html - >>, где отсутствует фактический корень контекста..
Ошибка 404 - не найдена из RFC 2068 Протокол передачи гипертекста - HTTP / 1.1: 10.4.5 404 не найден
Сервер не нашел ничего, соответствующего запросу-uri.Не указывается, является ли условие временным или постоянным.
Если сервер не хочет предоставлять эту информацию клиенту, вместо этого можно использовать код состояния 403 (Запрещено).Код состояния 410 (Унесенные) СЛЕДУЕТ использовать, если сервер знает через некоторый внутренне конфигурируемый механизм, что старый ресурс постоянно недоступен и не имеет адреса пересылки.
Но если я дам -
response.sendRedirect(response.encodeRedirectURL(request.getContextPath() + HandleError.handle(e, request)));
я получаю Ошибка 310 (net :: ERR_TOO_MANY_REDIRECTS): в Chrome и в FF ошибка говорит слишком много перенаправлений .
Можеткто-нибудь поможет мне?заранее спасибо.:)