Каждый раз, когда я получаю от сервера ответ «405 метод не разрешен», я хочу перенаправить пользователя на указанный URL-адрес. Тем не менее, я продолжаю получать IllegalStateExceptions, говоря, что ответ уже зафиксирован. Можно ли как-то перенаправить пользователя без получения этого исключения?
У меня есть следующий сервлет:
public class MethodNotAllowedHandler extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.sendRedirect("http://www.google.com");
}
}
и следующая запись в web.xml:
<servlet>
<servlet-name>MethodNotAllowedHandler</servlet-name>
<servlet-class>com.ex.MethodNotAllowedHandler</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MethodNotAllowedHandler</servlet-name>
<url-pattern>/MethodNotAllowedHandler</url-pattern>
</servlet-mapping>
<error-page>
<error-code>405</error-code>
<location>/MethodNotAllowedHandler</location>
</error-page>
Спасибо
Редактировать: Значит добавить трассировку стека:
09: 01: 33,326 ОШИБКА
[[MethodNotAllowedHandler]]
Servlet.service () для сервлета
MethodNotAllowedHandler бросил
исключение
java.lang.IllegalStateException в
org.apache.catalina.connector.ResponseFacade.sendRedirect (ResponseFacade.java:435)
в
com.ex.MethodNotAllowedHandler.doGet (MethodNotAllowedHandler.java:26)
в
javax.servlet.http.HttpServlet.service (HttpServlet.java:690)
в
javax.servlet.http.HttpServlet.service (HttpServlet.java:803)
в
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:290)
в
org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206)
в
org.apache.catalina.core.ApplicationDispatcher.invoke (ApplicationDispatcher.java:654)
в
org.apache.catalina.core.ApplicationDispatcher.processRequest (ApplicationDispatcher.java:447)
в
org.apache.catalina.core.ApplicationDispatcher.doForward (ApplicationDispatcher.java:379)
в
org.apache.catalina.core.ApplicationDispatcher.forward (ApplicationDispatcher.java:292)
в
org.apache.catalina.core.StandardHostValve.custom (StandardHostValve.java:423)
в
org.apache.catalina.core.StandardHostValve.status (StandardHostValve.java:342)
в
org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:143)
в
org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102)
в
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke (CachedConnectionValve.java:157)
в
org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:109)
в
org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:262)
в
org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:844)
в
org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process (Http11Protocol.java:583)
в
org.apache.tomcat.util.net.JIoEndpoint $ Worker.run (JIoEndpoint.java:446)
в
java.lang.Thread.run (Thread.java:619)