2012-02-24 76 views
1

以前,當我在Jersey上使用Grizzly時,如果我調用了未在Jersey註釋中定義的HTTP方法,它將返回405方法不允許響應,這很好。405不允許在Jersey中使用的方法返回Tomcat的405頁

現在我在Tomcat上運行Jersey,服務器返回Tomcat的特定405 html頁面。我怎樣才能恢復到只發送一個空身體的響應?

回答

0

你可以在你的web應用的web.xml配置自定義頁面:

<error-page> 
    <error-code>405</error-code> 
    <location>/empty.txt</location> 
</error-page> 

位置可以參考一個空的文本文件或JSP/Servlet的/任何適合您的需求。

1

由該線程採取: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請求,並返回可通過解析一個更實用的錯誤資源應用。