1

JAVAのRESTにJersey 1.14を使用しています。リソースの POST 本体にエラーがある場合、Jersey はスローし、内部クラスをクライアントに言及する例外をスローします。エラーがアプリケーションから渡されたときにエラーを出したいのですが、Jerseyによってスローされているエラーを抑制します(Jerseyが例外を識別してスローするため、アプリケーションに到達しないリクエストの場合)。これを達成するためにフラグを検索しましたが、何も見つかりませんでした。これを行う方法はありますか?

編集: 質問を言い換える: ジャージの無効な入力のエラー スタック トレースをミュート/抑制する

更新: java.lang.Exception をキャッチして、ExceptionMapper を使用してみました。Content-Type が欠落している場合などは例外をキャッチしますが、オブジェクト変換でエラーが発生した場合は例外をキャッチできません。

4

4 に答える 4

2

ExceptionMapperを使用できます。これはそれについての古い記事です。

于 2013-09-11T08:44:05.947 に答える
0

xml を解析している場合は、カスタム ContextResolver を記述して例外をキャッチできます。jsonの場合、メッセージボディリーダー/ライターが必要になる場合があります

于 2014-02-23T16:31:52.880 に答える
0

Jerseyには関連する構成オプションがないように見えるため、これはサーバー構成によって実現できると思います。

どのサーブレット コンテナを使用していますか?


(編集) Tomcat については、「Tomcat が例外スタック トレースを抑制する」を検索します。ほとんどの回答では、にerror-page要素を配置する必要がありますweb.xml

<error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <location>/your-custom-error-page.jsp</location>
</error-page>

そしてもちろん、your-custom-error-page.jspスタック トレースを含まない を実装します。また、アプリケーション環境をチェックし、DEVELOPMENT でのみスタック トレースを表示する場合もあります。

于 2013-09-11T07:22:17.067 に答える
0

Jersey は、コードで処理されない例外をスローします。そのため、Web サービス コードを でラップする必要がありますtry/catch。そして、Exceptionクラスをキャッチして、Web サービス クラスで適切に処理できるようにします。

于 2013-09-11T07:10:27.550 に答える