JAX-RS ExceptionMapper не работает ни для какого исключения, кроме java.lang.Exception

Я использую пружинный ботинок вместе с JAX-RS и Джерси. Я определил различные виды ExceptionMappers для разных типов Exceptions и один ExceptionMapper как Fallback mapper просто чтобы правильно зарегистрировать исключение и отправить правильный ответ клиентам. На уровне юнит-теста все работает нормально и правильное ExceptionMapper называется для его соответствующего Exception с использованием

<groupId>org.glassfish.jersey.test-framework.providers</groupId>
<artifactId>jersey-test-framework-provider-inmemory</artifactId>

Однако в запущенном приложении (встроенном в Jetty) используется только средство резервного копирования, которое перехватывает java.lang.Exception называется, а все остальные игнорируются. Я использую сканирование аннотаций для всего и FallbackExceptionMapper а также MyCustomExceptionMapper оба в одной упаковке и помечены @Provider, Любая идея, почему другие сопоставители исключений, как MyCustomExceptionMapper не работай?

Обновление: я изменил тип исключения из java.lang.Exception в моем FallbackExceptionMapper в MyCustomException и это тоже не называется. Похоже, что нет другого исключения, кроме корневого исключения (java.lang) пойман картографом.

Обновление 2: путем определения @Context javax.ws.rs.ext.Providers провайдеры в моем FallbackExceptionMapper и метод providers.getExceptionMapper(MyCustomException.class) Я вижу, что он возвращает экземпляр MyCustomExceptionMapper, но мне интересно, почему Джерси не вызывает его! Любая идея??

0 ответов

Другие вопросы по тегам