2013-07-02 110 views
3

如何在java REST中返回空實體的響應狀態405?我如何返回空實體的響應狀態405?

@POST 
@Path("/path") 
public Response createNullEntity() { 
    return Response.created(null).status(405).entity(null).build(); 
} 

它返回狀態代碼405,但實體不爲空,這是錯誤405

回答

2

的HTTP頁面當您返回一個錯誤,新澤西州的代表在迴應你的容器的錯誤處理通過sendError。當調用sendError時,容器將提供一個錯誤頁面。這個過程在Java Servlet Specification§10.9錯誤處理中概述。

我懷疑你看到的是你的容器的405響應的默認錯誤頁面。您可以通過specifying a custom error page(可能爲空)解決您的問題。或者,如果您在回覆中提供實體,澤西島將不會使用sendError。你可以給它一個空字符串是這樣的:

@POST 
@Path("/path") 
public Response createNullEntity() { 
    return Response.status(405).entity("").build(); 
} 

0

+0

Content-Length上述結果謝謝您的快速答覆。我已經嘗試了這一點,我得到了相同的實體(錯誤405的http頁面)和content-lenght 980. – junior

+0

@junior你使用澤西島嗎?什麼應用服務器?我用Tomcat 7.0.39測試了上述內容。你也可以嘗試不同的內容類型:'返回Response.status(405).entity(「」)。type(MediaType.TEXT_PLAIN).build();' – DannyMo

+0

我使用球衣1.17和tomcat 7.0.12。我嘗試了不同的內容類型和相同的結果。我嘗試了另一種狀態,它正在工作,我得到了我想要的結果。 – junior