4

私は、Jersey を使用して Jax-RS アプリケーションを作成しています。Jackson2 は、内部で JSON の入出力を容易にします。サービス自体は正常に動作しますが、Jackson マッパーが日付と日付時刻を JodaTime オブジェクトに自動的にシリアル化/逆シリアル化するようにして、サービスを改善したいと思います。

私はここのドキュメントに従っており、関連するjarを追加しましたが、この指示で迷っています:

Registering module

To use Joda datatypes with Jackson, you will first need to register the module first (same as with all Jackson datatype modules):

ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JodaModule());

jax.ws.rs.core.Application を拡張するカスタム クラスでこれを実行しようとしましたが、その解決策にまったく自信がありません。現在、次のエラーが発生しています。

Can not instantiate value of type [simple type, class org.joda.time.DateTime] from String value ('2014-10-22'); no single-String constructor/factory method
 at [Source: org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream@3471b6d5; line: 7, column: 25]

このモジュールの登録は、アプリケーション (サーブレット?) の起動時に行う必要があるという一般的な印象を除けば、この情報をどう処理すればよいかわかりません。カスタムクラスをピックアップするには、特に何かで注釈を付ける必要がありますか? クラスを拡張する必要がありますか?

StackOverflow で見つけた例は、通常、それを貼り付けmain()てマッパーを直接呼び出しますが、Jackson Databinding に依存しているため、例は関係ありません。どんな方向でも大歓迎です。

4

1 に答える 1