如何在 Magnolia CMS (v 5.5.6) 中为 jax-rs 端点提供自定义异常映射?

How to provide custom exception mappings for jax-rs endpoints in Magnolia CMS (v 5.5.6)?

我创建了基于自定义 jax-rs 的端点。

@Path("/test")
public class MyEndpoint<D extends EndpointDefinition>  extends AbstractEndpoint<D> {

    @Path("/dosth")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public void doSth() {
        //some code here
    }
}

现在我想为 jax-rs 端点添加自定义异常处理。我希望在一个地方处理所有异常,而不是在每个方法中都尝试捕获。试图添加 jax-rs ExceptionMapper:

@Provider
public class CustomExceptionMapper implements ExceptionMapper<Throwable> {

   public Response toResponse(Throwable e) {
      return Response.status(Response.Status.SERVICE_UNAVAILABLE).build();
   }
}

很遗憾,Magnolia 没有使用它。我如何在 Magnolia 5.5.6 中注册这样的映射器?

自定义异常映射器应在 rest-integration JCR 配置中注册。负责jax-rs提供者的节点是

config.modules.rest-integration.config.additionalProviders

我已经用我的自定义实现覆盖了默认的异常映射器,现在它可以工作了。