2016-11-29 400 views
1

我使用的彈簧引導碼頭在我的dev的機器做工精細,並實現了一些REST調用,所有的get方法在兩個環境devqa工作正常,但郵政總是返回'405方法不允許',我檢查了一切,如標題,正文和其他參數一切似乎正確。Post方法總是返回「405不允許的方法」,但

我正在使用spring rest實現,任何想法爲什麼它的失敗。

方法定義:

@RequestMapping(value ="/resub" ,method=RequestMethod.POST) 
public ResponseEntity<?> resub(@RequestBody Subscription Subscription,HttpServletRequest request){ 
    try { 
      // call to other service methods 
     //} 
     } catch (Exception e) { 
      if(e instanceof HttpClientErrorException) 
       return commonUtil.getExceptionResponse(e.getMessage()); 
      else 
       return commonUtil.getExceptionResponse("Unknown Error Occured"); } 
    } 

回答

1

這個答案真的應該是一個評論,但不幸的是我沒有50代表呢。

我注意到的第一個問題是,在它甚至到達catch語句之前,您正在關閉resub()函數。

這並不能解釋爲什麼你會得到405 http狀態響應。

「此問題的主要原因是使用錯誤的方法(不適用於您的情況)或者爲相同的動詞/方法定義了多個處理程序,並且其中一個處理程序阻止預期的處理程序處理請求...... IIS根據applicationHost.config和web.config文件中的順序處理程序條目從第一個到最後一個處理處理程序,其中第一個匹配的路徑,動詞,資源等組合將用於處理請求[1]「。

希望這會有所幫助,如果不是讓我知道,我可以繼續嘗試幫助:)

[1] - https://www.asp.net/web-api/overview/testing-and-debugging/troubleshooting-http-405-errors-after-publishing-web-api-applications

+0

所以,現在你有代表... :) –

+0

謝謝,我「M仍爲1短雖然哈哈:) –

+0

@MrPigeon,方法定義是正確的,看來你沒有注意到的開始花括號是有在同一行的函數名。 – Ali786

相關問題