これは、Jerseyを使用してJEE Glassfishサーバーで実行しようとしていることです。
@GET
@Path("/{name}/{date}")
public String getMessages(@PathParam("name") String name, @PathParam("date") Date date)
このRESTfulなWebサービスを利用する人々に「ここの日付はJavaのDateクラスで機能するものなら何でもよい」と伝えることができるというアイデアが気に入っています。これは、Date仕様だけを見ることができるという観点からは非常に単純であり、テストできる動作モデルが既に用意されています。
私が心配している問題は、これを行ったときに、Date()がコンストラクターで取得した内容が気に入らない場合、JAX-RSがあまり良くないことです。Date()は、与えられたものを解析できない場合(実際の日付ではなく「today」という文字列を渡した場合など)にエラーをスローするため、JEEサーバーは404エラーを返します。
これは良い習慣ですか?私が考えていない、これを行うより良い方法はありますか?
DateTimeFormatter
。Java <= 7の場合、次を使用しますThreadLocal