以前,当我在Grizzly上使用Jersey时,如果调用了Jersey批注中未定义的HTTP方法,它将返回405 Method Not Allowed响应,这很好。

现在,我在Tomcat上运行Jersey,服务器将返回Tomcat的特定405 HTML页面。如何恢复为仅发送带有空正文的响应?

最佳答案

如摘自此线程:http://jersey.576304.n2.nabble.com/how-to-catch-405-errors-td4937392.html

创建一个异常映射器类,如下所示:

@Provider
public class MyMapper implements
ExceptionMapper<WebApplicationException> {
   public Response toResponse(WebApplicationException e) {
     Response r = e.getResponse();
     if (r.getStatus() == 405) {
       return Response.fromResponse(r).entity(...).build();
     }
     return r;
   }
}


这使我能够捕获405请求并返回可以由应用程序解析的更有用的错误资源。

关于rest - Jersey 405方法不允许返回Tomcat的405页面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9431708/

10-10 15:51