上記の質問に対する答えが見つかりませんでした。カスタム応答を提供するために、InjectableProviderから例外をスローし、ExceptionMapperでキャッチするにはどうすればよいですか?
1 に答える
1
アレックス、パベル、
私はこれを自分で試しました:
- Joda
DateTime
注入可能なプロバイダー:PerRequestTypeInjectableProvider<PathParam, DateTime>
- クライアントが受け入れる形式 (XML、JSON など) でシリアライズ可能なオブジェクトに例外を変換するマッパー:
ExceptionMapper<WebApplicationException>
私の実験に基づいて、でWebApplicationException
スローされたものInjectableProvider
は例外 mapper をバイパスするため、適切にフォーマットされていないようです。
私も試しました:
ExceptionMapper<ParamException>
、を追加する- これらが配線される順序がアルファベット順に従うことを期待して、クラスの名前を変更します。
しかし、これまでのところ運がありません。
@ Pavel / ジャージー出身の方: どんなアドバイスでも大歓迎です!
ありがとう、
マーク。
アップデート
/ブロックInjectableProvider
でロジックをラップする場合、ブロックでは、トリックは次のとおりです。try
catch
catch
- シリアライズ可能な POJO / カスタム レスポンスを作成します。
javax.ws.rs.core.Response
適切なステータス コードおよび/またはメディア タイプでラップします。WebApplicationException
エンティティ パラメータとして に渡します。
@ Pavel / Jersey の誰か: この追加のロジックを回避し、物事を「うまく機能させる」代替手段はありますか?
于 2012-11-29T17:13:50.483 に答える