Java Spark请求的路由[/ users /]尚未映射到Spark中以接受:[* / *]

问题描述 投票:0回答:1

我有以下方法来修改Postgres数据库中的用户:

public void modifyUser(User usr){
    try (Connection conn = sql2o.beginTransaction()){
        conn.createQuery("update public.\"user\" set name=:name, lastname=:lastname, email=:email where id=:id")
                .addParameter("id", usr.getId())
                .addParameter("name", usr.getName())
                .addParameter("lastname", usr.getLastname())
                .addParameter("email", usr.getEmail())
                .executeUpdate();
        conn.commit();
    }
}

这种方法调用的方法:

//update
    put("/users", (request, response) -> {
        response.type("application/json");
        User user = new Gson().fromJson(request.body(), User.class);
        model.modifyUser(user);
        return new Gson().toJson(response);
    });

我使用Postman来指定身体,这样:

{   "id": 3, 
"name": "Mary",
"lastname": "Changed",
"email": "email"
}

但是,即使post方法工作正常,此“put”操作也会引发以下错误:

spark.http.matching.MatcherFilter - The requested route [/users/] has not been mapped in Spark for Accept: [*/*]

我不知道错误是什么。我找不到解决方案。

java put
1个回答
0
投票

不知道确切原因,但问题在于

put("/users", (request, response) -> {

在这种情况下,Spark希望将其写为

put("/users/", (request, response) -> {

与接受第一个版本的“post”方法不同。

© www.soinside.com 2019 - 2024. All rights reserved.