Несколько ExceptionMappers в Джерси
Предположим, у меня есть два ExceptionMappers:
public class WebApplicationExceptionMapper implements ExceptionMapper<WebApplicationException>
( class WebApplicationException extends RuntimeException )
public class GenericExceptionMapper implements ExceptionMapper<Throwable>
Если WebApplicationException или под исключение WebApplicationException бросили, какой преобразователь будет обрабатывать их? Может кто-нибудь, пожалуйста, объясните это?
Спасибо
1 ответ
Решение
Это указано в спецификации JAX-RS о ExceptionMappers
При выборе поставщика сопоставления исключений для сопоставления исключения реализация ДОЛЖНА использовать поставщика, универсальный тип которого является ближайшим суперклассом исключения.
В основном, это говорит о том, что ваш Throwable
mapper будет иметь самый низкий приоритет, так как это самый дальний супертип из всех типов исключений. любой WebApplicationException
или его подкласс всегда будет использовать WebApplicationException
картограф.