我有一个基于JAX-RS的Web应用程序。该应用程序包括两种类型的API:
两种API都会产生不同的格式响应
我目前有单个ExceptionMapper,用于捕获异常,如:EJBAccessException,NotAllowedException ...
这两种API类型都可以生成。
我的问题:哪个是分离异常处理的最佳方法? (对于rest api的相同异常的反应应该生成JSON响应,对于XML - xml响应)
@Context private ResourceInfo resourceInfo;
@Override
public Response toResponse(Throwable throwable) {
if(resourceInfo.getResourceClass().isAnnotationPresent(RestExceptionMapper.class)) {
return RestExceptionHandler.handle(throwable, servletRequest);
} else if (resourceInfo.getResourceClass().isAnnotationPresent(SoapExceptionMapper.class)) {
SoapExceptionHandler.handle(throwable, servletRequest);
}
return Response.status(500).entity("ERROR").build();
}
这是我的新异常映射器的模板。使用注释链接到资源。