1

Dropwizardアプリを開発していますが、 mongojackを含めた後、GET リクエストで奇妙なバグに直面しています。

ID をパス パラメーターとして使用する単純な GET クエリがあります。mongojack を含める前に機能し、エンティティに 2 つの注釈を追加しました。

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

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

    //...
}

私が最も困惑しているのは、その要求が実際に受け入れられたことです。デバッグするときは、メソッドにステップインできます。エンティティは MongoDB からメモリに読み込まれ、正常に表示されます。したがって、これは実際にはシリアライゼーションの問題であると思われますが、現在は行き詰まっています。何か案は?

アップデート

mongojack の既知の問題のようです: https://github.com/devbliss/mongojack/issues/26。後でとにかく、GET に ObjectIds のないカスタム DTO を使用したいので、これはもう関係ありません。私がまだ理解していないのは、Dropwizard がこれを 400 応答にマップする理由です...

4

1 に答える 1

0

私がまだ理解していないのは、Dropwizard がこれを 400 応答にマップする理由です。

Dropwizard は、Jackson を介して、ご存知のようにすべてのゲッター (または@JsonProperty注釈付きフィールド/メソッド) を使用して JSON を生成します。ゲッター (または逆シリアル化のセッター) で例外が発生した場合、dropwizard は自動的に を返します400 Bad Request

愚かなゲッターとセッターを備えた単純なPOJO DTOを期待しているので、それは理にかなっていると思います。

于 2015-06-01T20:29:48.337 に答える