有没有办法在Jersey中进行全局异常处理?我希望有一种方法可以将其放置在实际调用资源的地方,而不是单个资源具有try / catch块,然后调用某种方法来清理将要发送回客户端的所有异常。这有可能吗?如果是这样,怎么办?
而是在哪里sanitize(e)向Jersey Servlet抛出某种Jersey配置的异常:
sanitize(e)
@GET public Object getStuff() { try { doStuff(); } catch (Exception e) { ExceptionHandler.sanitize(e); } }
具有:
@GET public Object getStuff() throws Exception { doStuff(); }
异常会被抛出到我可以拦截并sanitize(e)从那里调用的东西。
实际上,这仅仅是为了简化Jersey的所有资源,并保证返回给客户端的异常始终处于某种可以理解的形式。
是。JAX- RS具有ExceptionMappers的概念。您可以创建自己的ExceptionMapper接口,以将任何异常映射到响应。有关更多信息,请参见:https : //jersey.github.io/documentation/latest/representations.html#d0e6352