私のテクノロジー スタックは、Tomcat (サーブレット 3.0)、Jersey for JAX-RS、Spring、および Hibernate です。Hibernate でのデータ変換エラーのように予期せぬ事態が発生した場合、Tomcat がデフォルトで出力しようとする例外のスタックトレースをクライアントに見せたくありません。ただし、これらの例外をログに記録して、何が問題なのかを見つけて修正できるようにしたいと考えています。
私の最初の試みは、JAX-RS の ExceptionMapper を使用し、それが私の問題を解決するだろうと単純に考えることでした。しかし、Jersey が独自の例外をスローすることに気付きました。たとえば、マップされていない URL は com.sun.jersey.api.NotFoundExceptions です。これにより、望ましくない 404 例外がログに記録されます。さらに悪いことに、クライアントは 404 ではなく、ステータス コード 500 を受け取ります。
jersey がスローする例外の例外マッパーを作成することもできましたが、何かを見落とす可能性があります。このようなもののベストプラクティスはありますか?