Tomcat拒绝所有POST请求

时间:2019-07-11 12:38:35

标签: java spring rest tomcat

我在Spring中创建了REST API,该API返回在主体请求中以JSON形式传递的值以及一些其他数据。使用spring-boot运行应用程序时,一切正常。每次发出请求时,我都会收到期望值。

我的目标是将此应用程序部署在端口Tomcat上的8080上。在Tomcat上部署应用程序后,所有POST的请求均被拒绝,并且出现以下错误:

{ "timestamp": "2019-07-11T12:33:41.877+0000", "status": 405, "error": "Method Not Allowed", "message": "Request method 'GET' not supported", "path": "/test/" }

问题是我正在使用POST发出POSTMAN请求。请求正文如下所示:

{ "username":"somebody" }

我的API代码:

@RestController
public class Test{

    @RequestMapping(value = "/", method = RequestMethod.POST)
    String token(@RequestBody RequestBodyData requestBody) {

    return "hello" + requestBody.getUsername();
    }

}


为什么我会收到此错误?我应该更改Tomcat配置还是我的代码不正确?

编辑1 我还将此应用程序部署在WildFly服务器上,并且一切正常。我正确使用Postman,问题是Tomcat或项目配置。

2 个答案:

答案 0 :(得分:1)

您需要将请求从 GET 更改为 POST 。您从请求中得到的错误消息证明了这一点:

"error": "Method Not Allowed",
"message": "Request method 'GET' not supported",

(通常)读取错误会解释该错误。

答案 1 :(得分:0)

将端点从/更改为/user/ call from tomcat as /test/user/ ( /appNameAsPerTomcat/user/ )

@RestController
public class Test{

    @RequestMapping(value = "/user/", method = RequestMethod.POST)
    String token(@RequestBody RequestBodyData requestBody) {

    return "hello" + requestBody.getUsername();
    }

}