i tried to redirect the 400 error with my custom error page but its not working.
400 only not redirect ,404 and 500 its working fine
1:
<error-page>
<error-code>400</error-code>
<location>/faces/errors.xhtml</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/faces/notfound.xhtml</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/faces/error.xhtml</location>
</error-page>
2:
changed in server level –sever.xml file its also not working
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.ErrorReportValve"
errorCode.400="/faces/errors.xhtml"
showReport="false"
showServerInfo="false" />
3
created the servelet class to redirect the error its also not working
package tneb.ccms.consumer;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/error400")
public class Error400Servlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Set response content type
//System.out.println( request.getRequestURI());
response.setContentType("text/html");
System.out.println("error page");
// Set response status to 400 Bad Request
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
response.sendRedirect(request.getContextPath()+"/faces/errors.xhtml");
}
}
package tneb.ccms.consumer;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.FilterRegistration;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class BadRequestFilter implements Filter {
private FilterConfig filterConfig;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
try {
chain.doFilter(request, response);
} catch (Exception e) {
if (httpResponse.getStatus() == HttpServletResponse.SC_BAD_REQUEST) {
httpRequest.getRequestDispatcher("/faces/errors.xhtml").forward(request, response);
} else {
throw e;
}
}
}
@Override
public void destroy() {
// Cleanup code if needed
}
}
i tried everything i can and refer the documentation still i cant able to resolve this issue
if anyone have the solution kindly give me a hand
New contributor
Ganesh Kumar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.