Rest中的Post方法总是返回'405 Method Not Allowed'但在我的开发机器中工作正常

时间:2016-11-29 05:12:01

标签: java spring rest

我正在使用带弹簧启动的jetty,并且实现了一些休息调用,所有get方法在环境devqa中都正常工作,但是post总是返回'405 Method Not Allowed ',我检查了所有内容,如标题,正文和其他参数,一切似乎都正确。

我正在使用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 个答案:

答案 0 :(得分:1)

这个答案应该是一个评论,但不幸的是我还没有50个代表。

我注意到的第一个问题是你在进入catch语句之前关闭了resub()函数。

但这并不能解释为什么你会得到405 http状态响应。

&#34;此问题的主要原因是使用了错误的方法(不适用于您的情况)或者为同一个动词/方法定义了多个处理程序,其中一个处理程序阻止了预期的处理程序处理请求。 ... IIS根据applicationHost.config和web.config文件中的订单处理程序条目从头到尾处理处理程序,其中路径,动词,资源等的第一个匹配组合将用于处理请求[ 。1]&#34;

希望这有帮助,如果不让我知道,我可以继续尝试帮助:)

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