Джерси не смог поймать ни одного исключения Джексона

Для моего REST API я использую Джерси и ExceptionMapper, чтобы ловить глобальные исключения. Он хорошо работает во всех исключениях, которые выдает мое приложение, но я не могу отловить исключение, выданное Джексоном.

Например, одна из моих конечных точек принимает объект, содержащий перечисление. Если Json в запросе имеет значение, которого нет в джерси enum, выбросить это исключение обратно

Can not construct instance of my.package.MyEnum from String value 'HELLO': value not one of declared Enum instance names: [TEST, TEST2]
at [Source: org.glassfish.jersey.me[email protected]5922e236; line: 3, column: 1] (through reference chain: java.util.HashSet[0]->....)

Несмотря на то, что я создал этот картограф

@Provider
@Component
public class JacksonExceptionMapper implements ExceptionMapper<JsonMappingException> {
  @Override
  public Response toResponse(JsonMappingException e) {
    ....
  }
}

Код никогда не достигает этого картографа.

Нужно ли что-то делать, чтобы перехватить эти исключения?

ИЗМЕНИТЬ Примечание: я просто пытался быть менее общим, и вместо JsonMappingException я использую InvalidFormatException, в этом случае вызывается картограф. Но я все еще не понимаю, потому что InvalidFormatException расширяет JsonMappingException и должен также вызываться

7 голосов | спросил Johny19 5 Jpm1000000pmTue, 05 Jan 2016 18:24:52 +030016 2016, 18:24:52

0 ответов


Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132