私はこれに新しいですが、いくつかのドキュメントを読むことを達成しようとしていますが、うまく動作しません。JAX-RSジャージExceptionMappersユーザ定義の例外
私はこのようなExceptionMappers
を使用してUserNotFoundMapper
を作成しました:私のサービスで
public class UserNotFoundMapper implements ExceptionMapper<UserNotFoundException> {
@Override
public Response toResponse(UserNotFoundException ex) {
return Response.status(404).entity(ex.getMessage()).type("text/plain").build();
}
}
この:
@GET
@Path("/user")
public Response getUser(@QueryParam("id") String id) throws UserNotFoundException{
//Some user validation code with DB hit, if not found then
throw new UserNotFoundException();
}
UserNotFoundException
がUser-Defined
例外です。
public class UserNotFoundException extends Exception {
//SOME block of code
}
しかし、私はサービスを呼び出す際に、UserDefinedExceptionMapper
が起動していない:
UserDefinedException
に何かが見つからない可能性があります。この例外を定義する方法は?
UserNotFoundException
の定義方法を教えてください。
返信いただきありがとうございます。私はこれに関連するいくつかのことを知る必要があります:WebApplicationExceptionの使用とExceptionMapperの使用の違いはどこですか? – WhoAmI
@WhoAmI - Webアプリケーションの例外は、JAX-RSプロバイダによって自動的にマッピングされるため、例外マッパーを使用するのとは対照的に、たとえば、 'WebApplicationException'を拡張し、' getResponse'メソッドをオーバーライドすることができます。JAX-RSの実装のみで定義されているすべての例外に対して、これを行う方が好きな人もいます。マッパーはWebApplicationException(例えば、すべての標準Java例外、サードパーティのライブラリからの例外など)から拡張されない例外をマッピングするためには素晴らしいです。 – Perception
次のステートメント: 'Webアプリケーションの例外はJAX-RSプロバイダによって自動的にマッピングされます.'私はネット上で読んでいるドキュメントの多くを見てきました。しかし、実際にそれが意味することを簡単に理解することができず、それの重要性/有用性は何ですか:(説明できますか? – WhoAmI