Это довольно просто и понятно.Я хочу выбросить ошибку 503 со стороны сервлета.
response.sendError(503);
Когда выдается это сообщение, мне нужно, чтобы оно попало на страницу с пользовательской ошибкой.В основном это страница с ошибкой 503, но с некоторыми изменениями.
Скажем, у меня есть 503.html
, и я добавил
<error-page>
<error-code>503</error-code>
<location>/503.html</location>
</error-page>
в web.xml
.
Я создал файл войны с сервлетом, который выдает ошибку 503, и web.xml
с этим содержимым.Я сохранил 503.html
в родительской папке.(Стоит ли хранить его в другом месте?)
Я развернул приложение в WLS, но этот пользовательский 503.html
не получил успеха.Я получаю общую ошибку 503.
Я что-то упустил?
Мой код указан ниже:
webapp1.war
-> web-inf
-> web-inf-> classes->prject4-> Class1.class
-> web-inf-> jsp-> error-> custom.html
web.xml
<?xml version="1.0"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>Class1</servlet-name>
<servlet-class>project2.Class1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Class1</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<error-page>
<error-code>503</error-code>
<location>/WEB-INF/jsp/error/custom.html</location>
</error-page>
</web-app>
class1.java
public class Class1 extends HttpServlet
{
private ServletConfig config;
public void init(ServletConfig config)throws ServletException
{
this.config=config;
}
public void service (HttpServletRequest request, HttpServletResponse response)
throws IOException
{
response.setContentType("text/html");
ServletOutputStream l_out = response.getOutputStream();
response.sendError(503);
}
}