我在 Spring Boot 中使用 jetty,并实现了一些休息调用,所有 get 方法在环境 dev
和 qa
中都工作正常,但 post 始终是返回“405 Method Not allowed”,我检查了标题、正文和其他参数等所有内容,一切似乎都是正确的。
我正在使用 Spring 休息实现,任何想法为什么它失败。
方法定义:
@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"); }
}
最佳答案
这个答案确实应该是一条评论,但不幸的是我还没有 50 次代表。
我注意到的第一个问题是,您在 resub() 函数到达 catch 语句之前就关闭了它。
但这并不能解释为什么您会收到 405 http 状态响应。
“此问题的主要原因是使用了错误的方法(不适用于您的情况)或为同一动词/方法定义了多个处理程序,并且其中一个处理程序正在阻止预期处理程序处理请求. ... IIS 根据 applicationHost.config 和 web.config 文件中的顺序处理程序条目从头到尾处理处理程序,其中第一个匹配的路径、动词、资源等组合将用于处理请求[1]”。
希望这会有所帮助,如果没有请告诉我,我可以继续尝试提供帮助:)
关于java - Rest 中的 Post 方法总是返回 '405 Method Not Allowed' 但在我的开发机器上工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40858262/