Вопрос

This is pretty simple and straightforward. I want to throw a 503 error from the servlet side.

response.sendError(503); 

When this is thrown, I need it to hit a custom error page. Basically a 503 error page itself, but with a few modifications.

Say I have 503.html, and I added

<error-page>
    <error-code>503</error-code>
    <location>/503.html</location>
</error-page>

in web.xml.

I created a war file, with a servlet which throws the 503 error, and web.xml with this content. I kept the 503.html in the parent folder location. (Should I keep it elsewhere ?)

I deployed the app in WLS, but this custom 503.html is not getting hit. I am getting the generic 503 error.

Am I missing something?

My code is below:

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); 
   }
}

Нет правильного решения

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top