Spring Boot - 请求方法'POST'不支持无限警告

时间:2016-05-10 20:42:42

标签: java spring spring-mvc spring-boot

我看了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();
    }
}

1 个答案:

答案 0 :(得分:0)

根据OP的要求,我发布了答案。

@RequestParam适用于 GET POST 方法。您还可以在this SO post找到更多信息。

与@zeroflagL评论一致,某人 发出了POST请求。我最好的选择是@RequestParam有错,正如你所说的那样。现在,我无法确切地告诉你为什么或者在那里发生了什么,因为我没有你的整个代码库来调查(Spring有许多活动部分,如我们所知)。也许有一些客户端代码在你不知情的情况下向后端发送POST请求。我更专注于客户端,因为你面临的问题是对后端发出了一个未知的POST请求,Spring无法映射到任何方法,这只能从客户端完成。

可以执行的后续步骤:

  1. 一次删除一个@RequestParam用法,看看哪一个会产生问题。就像你说的那样,当你从greeting()方法中删除@RequestParam时,错误消失了。也许这就是问题所在。然而,尝试使用其他方法,在这种情况下,getFormsForUserId()方法。
  2. 获得创建问题的方法后,请检查该请求的相应客户端代码,看看是否发现任何异常。也许问题就在那里!
  3. 希望这会有所帮助。 :)

    P.S。如果您发现问题背后的原因,请告诉我。学习新东西感觉很好。