私はJAX-RSExceptionMapperを使用してアプリケーションの例外をキャッチし、カスタム出力を返します。問題は、マッパーのコンテキストでは、ユーザーが入力したAccept
ヘッダーがない場合、返される出力のタイプ(HTML対JSONなど)がわかりません。現在のところ、コードはUriInfoリクエストパスに基づいたひどいハックを使用して、選択されたメディアタイプを判別します。メディアタイプは、例外をスローしたメソッドの@Producesアノテーションと同じであることが理想的ですが、ExceptionMapper
にそのアノテーションを取得する方法が見つかりませんでした。ExceptionMapperで例外を投げたメソッドの@Producesアノテーションを取得します。
これが可能ですか、それとも別の方法で分かりやすいメディアタイプを返すことができますか?
その他の回答:
This answer何のリクエストボディがない場合、着信要求はnullのメディアタイプを返し、そうGETリクエストのために助けにはならないhttpHeaders.getMediaTypeを()、使用して助言します。
以下はpeeskilletの回答に基づくimplementationです。
何が問題なのか説明しなくても、この質問を下落させることは非常に役に立たない。私はいくつかの問題を探して質問を読んだが、それは私にとってはうまくいくようだ。 – elhefe