尝试验证是否确实存在调用的rest方法以及该方法的访问参数。如果有任何例外,我想抛出我的自定义例外。 对于例外情况,我已经使用WriterInterceptor实现了逻辑,就像这样:
@Provider
public class AppWriterInterceptor implements WriterInterceptor {
@Override
public void checkContext(WriterInterceptorContext context) throws IOException, WebApplicationException {
Object entity = context.getEntity();
if (entity instanceof Throwable) {
Throwable t = (Throwable) entity;
Map<String, Object> ret = new HashMap<>();
ret.put("message", t.getMessage());
if (t instanceof MyCustomException) {
ret.put("messageCode", ((MyCustomException) t).getMessageCode());
} else {
ret.put("messageCode", "unexpected.error");
}
context.setEntity(ret);
}
context.proceed();
}
但是当使用错误路径调用我的应用程序时,例如:base_url / get-client插入了get-clinets,它不会进入WriterInterceptor。
我的其他一些休息方法也具有枚举类型的参数,在调用方法之前需要检查被枚举变量是否确实存在于枚举中,因为我需要访问方法及其参数。 ContainerRequestFilter怎么可能。