この例外をマップできます。なぜだめですか?エラーが出ますか?
このコードは仕事をするはずです
@Provider
public class EJBExceptionMapper implements ExceptionMapper<org.jboss.resteasy.spi.UnsupportedMediaTypeException>{
Response toResponse(org.jboss.resteasy.spi.UnsupportedMediaTypeException exception) {
return Response.status(415).build();
}
}
Spring 構成ファイルでそのプロバイダーを宣言することを忘れないでください。
クライアントにさらに情報を提供したい場合は、クラスを作成します
@XmlRootElement
public class Error{
private String message;
//getter and setter for message field
}
そして、あなたはすることができます
@Provider
public class EJBExceptionMapper implements ExceptionMapper<org.jboss.resteasy.spi.UnsupportedMediaTypeException>{
Response toResponse(org.jboss.resteasy.spi.UnsupportedMediaTypeException exception) {
Error error = new Error();
error.setMessage("Whatever message you want to send to user");
return Response.entity(error).status(415).build();
}
}
Error エンティティを使用したくない場合は、Response.entity()
呼び出す文字列を渡すだけです。
アプリケーションでスローされたものをすべてキャッチしたい場合は、一般的な例外マッパーを作成します。
@Provider
public class ThrowableMapper implements ExceptionMapper<Throwable> {
public Response toResponse(Throwable t) {
ErrorDTO errorDTO = new ErrorDTO(code);
return Response.status(500).build();
}
}