voc*_*uoi 5 java validation rest jsonb-api
我已经使用JSON-B开发了Java REST服务,以将传入的有效负载映射到POJO。
现在,我想做的是验证传入的有效负载,可能是针对JSON模式,但是到目前为止,我还无法找到任何东西……
是否可以覆盖默认的JSON-B映射过程,从而捕获任何映射异常并自行处理?
为了实现这一点,您可以注册自己的 JAX-RS 提供程序来执行 JSON(反)序列化并处理其中的任何错误。
例如:
@Consumes({ "*/*" })
@Provider
public class JsonBProvider implements MessageBodyReader<Object> {
private static final Jsonb jsonb = JsonbBuilder.create();
@Override
public boolean isReadable(Class<?> type, Type genericType,
Annotation[] annotations,
MediaType mediaType) {
return true;
}
@Override
public Object readFrom(Class<Object> clazz, Type genericType, Annotation[] annotations,
MediaType mediaType, MultivaluedMap<String, String> httpHeaders,
InputStream entityStream)
throws IOException, WebApplicationException {
try {
return this.jsonb.fromJson(entityStream, clazz);
} catch (Exception e) {
// Do your custom handling here
}
}
}
Run Code Online (Sandbox Code Playgroud)
这将覆盖通过 JAX-RS 和 JSON-B 发生的反序列化。
注意:如果您也想对序列化执行相同的操作,则可以MessageBodyWriter<Object>以类似的方式实现。
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |