2017-05-05 11 views
4

Jacksonを使用してJSON変換を処理するJAX-RSプロジェクトがあります。例外をキャッチJacksonが単一のExceptionMapperでスローする

ジャクソンが例外をスローすると、自動的にエラーの説明を含む文字列が返されます。

私はカスタムJSONオブジェクトを返したいので、ExceptionMapperを作成しました。

の問題は、私がスローされる例外の正確タイプを指定することのみキャッチ例外です。

public class MyExceptionMapper implements ExceptionMapper<UnrecognizedPropertyException> 

しかし、私は(最初が延びる)PropertyBindingExceptionUnrecognizedPropertyExceptionを変更した場合、それは動作しません:JSONはメソッドに送ら例えば

は、未知のプロパティが含まれている、これは動作します。要するに

がどのように私は(そのことについては、または私のアプリの他のコンポーネント)ジャクソンによってスローされた例外をキャッチし、一般的な例外マッパーを作成することができますか?

答えて

0

は、すべての例外のフォールバックする必要があります

public class MyExceptionMapper implements ExceptionMapper<Exception> 

これにしてみてください。

ジャクソンは適切なExceptionMapperを見つけたら、例外から階層を探しています。 タイプ階層に何かがある限り、それは見えます。 したがって、UnrecognizedPropertyExceptionはPropertyBinding-Exceptionマッパーで処理されますが、UnrecognizedPropertyException Mapperがより具体的であるため多くのサブクラスが存在する可能性があるため、他の方法で処理されないため、どのMapperを使用するか決定できません。したがって、それは上向きにしか動作しません。

例外は基本例外であるため、すべてがそこで終わるためです。

関連する問題