我在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或项目配置。
答案 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();
}
}