2

JBoss AS7/Wildfly を使用した RESTEasy での例外処理またはその欠如について少し混乱しています。例外処理が正確にどの「ドメイン」に該当するかは完全にはわかりません。

これは私がテストに使用するものです:

@GET
@POST
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public Response test(@QueryParam("id") final long id) {
    log.info("Incoming request! Wee! With id " + id + "!");

    return Response.ok().build();
}

ここまでは順調ですね。これは、localhost/app/rest/test?id=123 で期待どおりに動作します。ただし、localhost/app/rest/test?id=123abc のように、パラメーターに「適合」しないものを入れると、RESTEasy から長い例外が発生し、それが適合しないことが正しく通知されます。期待されるパラメータ。

しかし、私が理解していないのは、この例外を処理/キャッチする方法です。明らかに、40 行のスタック トレースをメイン (またはその他) のログに記録したくはありませんが、自分で適切なエラー ログを記録します。私の調査では、タイプ NumberFormatException のすべての例外を処理する一般的な方法しか判明していません。これは、適切なロギング アプローチにはまったく適していません。

では、どうすればこの問題を処理できますか? これはコードの「外側」で発生するため、try/catch で正確に囲むことはできず、特定の REST マッピングの特定の不適切なパラメーターは、アプリケーション全体の例外マッパーを作成するのに十分な一般的なものではありません。

4

1 に答える 1