2015-05-14 80 views
0

我有一個小的REST-ful Java後端,用C寫的一些客戶端連接到後端。他們在某些POST方法中發送一些信息,我將它保存到數據庫中,如果一切順利,則以200 OK響應。基本結構如下所示。HTTP 405 - 200 OK響應中的方法不允許錯誤

@POST 
@Path("/mypath") 
@Produces("text/html") 
public Response processMessage(final String message, @Context final HttpServletRequest request) throws IOException { 

..... 
return Response.ok().build(); 

} 

我的問題是,在這種反應,我在日誌中出現以下錯誤:

javax.ws.rs.NotAllowedException: No resource method found for , return 405 with Allow header 

我明白這是什麼錯誤的情況下,意味着假設您嘗試在執行GET時例如,應該是POST的端點。我不明白爲什麼我會在我的迴應結束後得到這個結果,並且清楚地表明請求類型是空的......太奇怪了。

一些額外的信息 - 客戶端上的代碼一直是錯誤的HTTP代碼的錯誤...但是客戶端上會導致這種響應會有什麼錯誤? (我沒有訪問客戶端代碼)。

此外,我的應用程序中沒有客戶端代碼,如果您想知道是否有其他代碼將我的web應用程序撥出電話。

感謝您的任何想法!

+0

你可以發佈客戶端代碼嗎? – syrion

+0

@syrion - 感謝您的快速回復,但正如我上面提到的,很遺憾,我無法訪問客戶端代碼。 – dhalia

+0

啊,錯過了。 – syrion

回答

0

這個問題很可能在客戶端,所以沒有看到代碼很難提供更詳細的信息 - 但我的期望是,這是你的客戶試圖做一些事情的結果,如POSTPUT憑據,或沿着這條線。

您唯一的辦法是啓用詳細請求日誌記錄,記錄產生405錯誤的請求,並將其報告給客戶端開發人員。但是,值得注意的是,任何公開曝光的API都將生成一堆405 s和404 s,因爲「黑客」將嘗試對任何已知的URL執行諸如WordPress黑客等操作。