2016-11-29 402 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

相关问题