Jerseyを使用してJAX-RS(別名、JSR-311)を学習しています。ルートリソースを正常に作成し、パラメーターをいじっています。
@Path("/hello")
public class HelloWorldResource {
@GET
@Produces("text/html")
public String get(
@QueryParam("name") String name,
@QueryParam("birthDate") Date birthDate) {
// Return a greeting with the name and age
}
}
これはうまく機能し、Date(String)コンストラクターによって理解される現在のロケールのすべての形式を処理します(YYYY / mm / ddおよびmm / dd / YYYYなど)。しかし、無効な値または理解できない値を指定すると、404応答が返されます。
例えば:
GET /hello?name=Mark&birthDate=X
404 Not Found
この動作をカスタマイズするにはどうすればよいですか?おそらく異なる応答コード(おそらく「400 Bad Request」)でしょうか?エラーの記録についてはどうですか?トラブルシューティングに役立つように、カスタムヘッダーに問題の説明(「不正な日付形式」)を追加することはできますか?または、5xxステータスコードとともに詳細を含むエラー応答全体を返しますか?