gpt4 book ai didi

java - 我可以使用自定义预分派(dispatch)、后分派(dispatch)和错误处理程序代码来包装所有 JAX-RS 请求吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:27:18 24 4
gpt4 key购买 nike

我使用 javax.ws.rs.Path 注释将许多类公开为 JAX-RS 请求“处理程序”。我想在每个请求之前和每个请求之后添加某些操作。此外,我需要创建一个全局应用程序范围的异常处理程序,它将捕获这些处理程序和协议(protocol)抛出的所有内容。

是否可以使用标准 JAX-RS 实现这一点,而无需创建继承自 com.sun.jersey.spi.container.servlet.ServletContainer 的自定义类(我正在使用 Jersey)。

最佳答案

您还可以使用 ExceptionMappers。该机制捕获您的服务抛出的异常并将其转换为适当的响应:

@Provider  
public class PersistenceMapper implements ExceptionMapper<PersistenceException> {

@Override
public Response toResponse(PersistenceException arg0) {
if(arg0.getCause() instanceof InvalidDataException) {
return Response.status(Response.Status.BAD_REQUEST).build();
} else {
...
}
}

}

有关详细信息,请参阅:

关于java - 我可以使用自定义预分派(dispatch)、后分派(dispatch)和错误处理程序代码来包装所有 JAX-RS 请求吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3916094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com