@wikiwana

Почему игнорируется запрос DELETE?

Есть Dynamic Web Project - Java EE7 проект REST API на эклипсе.
Реализовал его с Jersey и сервером Tomcat 8.5. Все работает, но вот потребовалось запускать проще, используя mvn exec:java :(
Скачал Apache Maven 3.5.2, не думая сделал такое:
mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-grizzly2 -DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false -DgroupId=com.wkwn -DartifactId=rest-example-Dpackage=com.wkwn.rest.example -DarchetypeVersion=2.22.2

Попробовал mvn clean compile и mvn install в создавшейся папке rest-example.
Далее открыл в IntellIj IDEA эту папку, раскоментил в pom.xml строчку для поддержки json, накидал в проект свои файлы .java со старого проекта на эклипсе, кое-что подправил, навел марафет.
Запуск.
Отправляю запросы: GET, POST и PUT работают идеально, корректно, а DELETE вообще не видит как будто, но он есть! Есть он и в сгенерированном localhost:8080/application.wadl файле.
Просто на запрос DELETE приходит пустой ответ "Response 400 Bad Request" (отправляю запросы в RESTer - расширение для браузера).
Если что, то вот функция DELETE запроса:
@DELETE
    @Produces(MediaType.APPLICATION_JSON)
    public Response deleteNote(Note note) {
        if (note.getId() == null)
            return MyResponse.badNullId();
        else if (NoteArray.removeNoteById(note.getId()))
            return MyResponse.goodDelete(note.getId());
        else
            return MyResponse.badNotFoundId(note.getId());
    }
  • Вопрос задан
  • 310 просмотров
Решения вопроса 1
@wikiwana Автор вопроса
server.getServerConfiguration().setAllowPayloadForUndefinedHttpMethods(true);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Ой вэй, DELETE-запрос с телом! Не надо так.

@DELETE @Path("{id}")
public Response deleteNote(@PathParam Long id) {
    if (NoteArray.removeNoteById(id))
        return MyResponse.goodDelete(id);
    else
        return MyResponse.badNotFoundId(id);
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы