2015-06-01 2 views
1

Я разрабатываю приложение Dropwizard и сталкиваюсь с странной ошибкой по запросу GET после того, как включил mongojack.Dropwizard возвращает 400 на действительном GET

У меня есть простой запрос GET с идентификатором в качестве параметра пути. Он работал, прежде чем я включил mongojack и добавил две аннотации к моему лицу:

public class Bill { 
    @javax.persistence.Id @org.mongojack.ObjectId 
    private String id; 

    @javax.persistence.Id @org.mongojack.ObjectId 
    public String getId() { return id; } 

    //... 
} 

озадачивает меня больше всего в том, что запрос на самом деле принято. Когда я отлаживаю, я могу войти в метод. Объект загружается из MongoDB в память и выглядит отлично. Поэтому я подозреваю, что это может быть проблема сериализации, но в настоящее время я застрял. Есть идеи?

Update

Кажется, известная проблема mongojack: https://github.com/devbliss/mongojack/issues/26. Позже я хочу использовать пользовательские DTO без ObjectIds для моих GET, так что это больше не должно быть актуальным. То, что я до сих пор не понимаю, почему Dropwizard отображает это на 400 ответ ...

ответ

0

То, что я до сих пор не понимаю, почему Dropwizard отображает это на 400 ответ

Dropwizard, через Джексон, генерирует JSON, используя все геттеры (или аннотированные поля/методы), как вы знаете. Если какое-либо исключение возникает в getters (или сеттерах при десериализации), dropwizard автоматически возвращает 400 Bad Request.

Я предполагаю, что это имеет смысл, поскольку он ожидает простых POJO DTO с немыми геттерами и сеттерами.

Смежные вопросы