HTTP Status 405 - JSPs only permit GET POST or HEAD

Grigory Kislin picture Grigory Kislin · May 27, 2014 · Viewed 10.2k times · Source

Since JSP 2.3 (Tomcat 8) only supported method for JSP is GET POST or HEAD:

https://jcp.org/aboutJava/communityprocess/maintenance/jsr245/245-MR3.html http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/servlet/JspServlet.java?view=diff&r1=1497877&r2=1497878&pathrev=1497878

But, I suppose, it is a big incompatible change as, for example, for exception handler it is used to forward to JSP for rendering exception and iso JSP view since JSP 2.3 response is:

Method Not Allowed
HTTP Status 405 - JSPs only permit GET POST or HEAD 

description The specified HTTP method is not allowed for the requested resource.
Apache Tomcat/8.0.3

If we use REST and Spring HandlerExceptionResolver in case of exception we bump into this problem for sure. Are there any workaround for this problem (iso change http method type)?

Answer

Mark Thomas picture Mark Thomas · May 27, 2014

Sorry, there is no workaround (at the moment) for this. My recommendation to the EG was that the handled methods were made configurable. That suggestion was rejected. I suggest you raise this specific issue with them since it is a good argument for making the supported methods configurable on a per JSP (or group of JSPs) basis.

Meanwhile, I'll take a look at making this configurable using some form of Tomcat specific configuration under the bug you raised for this: https://issues.apache.org/bugzilla/show_bug.cgi?id=56568

UPDATE: As of Tomcat 8.0.9 when a JSP is used to generate an error page, any HTTP method will be allowed.