В моем приложении JAXRS у меня 2 ExceptionMapper
зарегистрировано как @Provider
public class MyExceptionMapper implements ExceptionMapper<Exception> {...}
public class MyCustomRuntimeExceptionMapper implements ExceptionMapper<MyCustomRuntimeException> {...}
Когда мое приложение выдает новый MyCustomRuntimeException
, исключение перехватывается внутри MyExceptionMapper
, хотя (согласно спецификации JAX-RS) оно должно быть перехвачено внутри MyCustomRuntimeExceptionMapper.
Вот что говорит JAXRS -
JAX-RS также поддерживает наследование исключений. Когда исключение
JAX-RS сначала попытается найти ExceptionMapper для этого
тип исключения. Если он не может найти его, он будет искать картограф
это может обработать суперкласс исключения. Это будет продолжаться
обрабатывать, пока не останется больше суперклассов для сопоставления.
У кого-нибудь есть подсказка, что здесь происходит?