我看了SO上的其他帖子,但没有找到答案。
我创建了一个Spring Boot应用程序,目前只有3个GET
Web服务。
我没有任何POST
方法。
当我运行应用程序时,控制台警告会一遍又一遍地循环。
o.s.web.servlet.PageNotFound:请求方法'POST'没有 支持的
这是我需要关注的吗?或者它只是显示,因为我没有实现任何POST
服务?
项目结构 - Application.java 控制器 - >经理/经理Impl - > DAO / DAOImpl。
当我调用webservice时,它只是使用JDBC从Oracle DB读取并将它们以JSON的形式吐出。
控制器代码 -
@RestController
@RequestMapping(value = "/forms")
public class FormController {
@Autowired
private FormManager formManager;
@RequestMapping(value = "/{formId}", method = RequestMethod.GET)
public FormObj getFormForFormId(@PathVariable int formId) throws Exception {
FormObj forms = new FormObj();
try {
forms = formManager.getFormForFormId(formId);
} catch (Exception e){
throw new RemoteException("Error getting forms for formId- " + formId + " " + e.getMessage());
}
return forms;
}
@RequestMapping(method = RequestMethod.GET)
public List<FormObj> getFormsforUserId(@RequestParam(value="userId", defaultValue="0") int userId) throws Exception {
List<FormObj> forms = new ArrayList<>();
try {
forms = formManager.getFormForUserId(userId);
} catch (Exception e){
throw new RemoteException("Error getting forms for UserId- " + userId + " " + e.getMessage());
}
return forms;
}
@RequestMapping(value = "/time", method = RequestMethod.GET)
public long greeting(@RequestParam(value="name", defaultValue="World") String name) {
return Calendar.getInstance().getTimeInMillis();
}
}
答案 0 :(得分:0)
根据OP的要求,我发布了答案。
@RequestParam适用于 GET 和 POST 方法。您还可以在this SO post找到更多信息。
与@zeroflagL评论一致,某人 发出了POST请求。我最好的选择是@RequestParam
有错,正如你所说的那样。现在,我无法确切地告诉你为什么或者在那里发生了什么,因为我没有你的整个代码库来调查(Spring有许多活动部分,如我们所知)。也许有一些客户端代码在你不知情的情况下向后端发送POST请求。我更专注于客户端,因为你面临的问题是对后端发出了一个未知的POST请求,Spring无法映射到任何方法,这只能从客户端完成。
可以执行的后续步骤:
greeting()
方法中删除@RequestParam时,错误消失了。也许这就是问题所在。然而,尝试使用其他方法,在这种情况下,getFormsForUserId()
方法。希望这会有所帮助。 :)
P.S。如果您发现问题背后的原因,请告诉我。学习新东西感觉很好。