我用openapi-codegen创建了一个rest-api。作为参数,有一个包含两个ENUM的对象。
例如
public enum DocumentType {
FOTO_ID("PHOTO_ID");
[...]
}
如果我发送的文档类型不是“ PHOTO_ID”,则收到以下响应
Cannot construct instance of `[...]`, problem: Unexpected value '[...]'
at [Source: (org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream); line: 2, column: 21] (through reference chain: [...])
这是正确的,但是我想抓住它并发送自己的ErrorResponse。
我找不到办法。
答案 0 :(得分:0)
如果有人有类似的问题,我刚刚找到了解决方法:
您必须为JsonMappingException设置自己的ExceptionMapper。 设置优先级是导入的,否则将不使用您的映射器。
@Named
@Singleton
@Provider
@Priority(1)
public class JsonMappingExceptionMapper implements ExceptionMapper<JsonMappingException> {
@Override
public Response toResponse(JsonMappingException exception) {
[...]
}
}
信用: Jersey unable to catch any Jackson Exception 指出优先主题。