Java Spark Запрошенный маршрут [/ users /] не был сопоставлен в Spark для принятия: [* / *] - PullRequest
1 голос
/ 13 марта 2019

У меня есть следующий метод для изменения пользователя в моей базе данных 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: [*/*]

Я не понимаю, в чем ошибкаявляется.Я не мог найти ни одного решения.

1 Ответ

0 голосов
/ 13 марта 2019

Не знаю точную причину, почему проблема была в

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

Спарк хочет, чтобы в этом случае он был записан как

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

В отличие от метода «post», который принимает первую версию.

...