問題タブ [exceptionmapper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JAXRS/Jersey 2 - 検証エラーが ExceptionMapper を呼び出さない
最新の Jersey (2.22.1) を使用して、さまざまなニーズに対応するカスタム バリデータを作成しました。しかし、私のカスタムExceptionMapper
(web.xml に として登録されているprovider
) は、 ConstraintViolationException が発生したときに呼び出されませんが、ExceptionMapper<Throwable>
.
web.xml
DefaultExceptionMapper
デバッガーを使用すると、クラス org.glassfish.jersey.server.ServerRuntime の 596 行目で、解決されたマッパーは私のものではなく、org.glassfish.jersey.server.validation.internal.ValidationExceptionMapper
.
DefaultExceptionMapper
の場合にジャージーに my を使用するように指示するにはどうすればよいConstraintViolationException
ですか?
PS:ここで提案されているオプションを試してみました:無効な JSON を受信した場合、ExceptionMapper は呼び出されません。
json - ジャージーはジャクソン例外をキャッチできません
私の REST API では、jersey と ExceptionMapper を使用してグローバルな例外をキャッチしています。アプリがスローするすべての例外でうまく機能しますが、ジャクソンによってスローされた例外をキャッチできません。
たとえば、私のエンドポイントの 1 つは、列挙型を含むオブジェクトを受け入れます。リクエストの Json に enum jersey にない値がある場合、この例外をスローします
このマッパーを作成したにもかかわらず
コードがこのマッパーに到達することはありません。
これらの例外をキャッチするために必要なことはありますか?
編集 注:私はあまり一般的ではないことを試みましたが、JsonMappingException の代わりに InvalidFormatException を使用します。この場合、マッパーが呼び出されます。しかし、InvalidFormatException は JsonMappingException を拡張し、同様に呼び出す必要があるため、まだわかりません
spring - Spring JsonExceptionMapper ExceptionMapper の処理。
サーバーの起動時に weblogic コンソールに次のエラーが表示されます。
SEVERE: パラメーター インデックス 0 のコンストラクター public com.test.mine.exception.JsonExceptionMapper(java.lang.String,com.fasterxml.jackson.core.JsonLocation) の依存関係がありません SEVERE: コンストラクター public com.test.mine の依存関係がありません。パラメーター インデックス 1 の exception.JsonExceptionMapper(java.lang.String,com.fasterxml.jackson.core.JsonLocation)
以下は私のJavaコードです。
jersey - ジャージーSQLExceptionマッパーが呼び出されない
これは私の SqlExceptionMapper です
ここで、関数の catch ブロックで例外をスローしています
これは私のweb.xmlです
コードをデバッグしましたが、catch ブロックが SQLException をスローしています。唯一の問題は、作成したマッパーにマッピングされていないことです。
java - サブリソースを間違って呼び出すジャージー
JAX-RS を使用して RESTful Web サービスを学習しています。とMessageResource
サブ リソースがありCommentResource
ます。
呼び出したくないので、クラスでMessageResource
コメントしたテストメソッドでコメントサブリソースをマップしました。MessageResource
CommentResource
私はCommentResource
次のようなサブリソースを持っています:
Throwable
クラスにマップされる一般的な例外マッパーを作成しました。これは、Tomcat エラー レポート ページを表示するのではなく、サーバー エンドで例外が発生した場合に、意味のあるメッセージを送信するために作成されています。
さらに、URLを呼び出して汎用例外マッパーをテストしているとき
のどのメソッドにもマップされていませんMessageResource
。CommentResource
次のメソッドを呼び出しています。
上記の方法にコメントすると、Postman で適切な応答が得られます。
誰でもこの動作を説明できますか? 前もって感謝します。
exception-handling - JAX-RS Exception Mapper が Grizzly コンテナで動作しない
チームで Jersey Web アプリケーションに取り組んでいましたが、プロジェクトが大きくなるにつれて、Tomcat から Grizzly に切り替えて、プロジェクトの一部を異なるポート番号にデプロイできるようにすることにしました。私が今見つけたのは、私たちが持っているカスタム例外処理が今はうまくいかず、代わりに常に grizzly html ページを取得することです。
例外の例:
マッパー:
問題の原因がどこにあるのかわかりません。必要に応じて、より多くの情報/コードを提供できます。何が問題なのですか、何を試すことができますか?
編集:
Main.class:
EDIT2:この質問に
基づいて、このServerProperties.RESPONSE_SET_STATUS_OVER_SEND_ERROR, "true"
プロパティを使用してみましたが、少ししか役に立ちませんでした。例外が発生したときにまだ html grizzly ページを取得していますが、ページの本文に例外 (+ スタック トレース) が表示されます。
java - Jersey カスタム ExceptionMappers を .jar war ファイルから .war ファイルにインポートできますか?
JUnit テストを実行すると、このエラーが発生し続けます。これは、Jersey カスタム ExceptionMappers を .jar ファイルから .war ファイルにインポートしようとしたときにのみ発生します。
マッパーが .war ファイルにある場合、マッパーが正しく動作することはわかっていますが、マッパーを必要とする 2 つの別個のモジュールがあり、マッパーを複製して各モジュールに 1 つ持つことは避けたいと考えています。
.jar ファイルから ExceptionMapper をインポートする方法を知っている人はいますか?