我想自定义404响应,即服务器(不是我)在找不到请求的资源时抛出(或自己抛出一个自定义的WebApplicationException,如果可以测试一个应用程序中是否存在请求的资源)?资源列表存储在某处?)。
请不要将我推荐给建议扩展WebApplicationException的解决方案,因为即使这样做,我的问题是何时将其抛出?何时找不到资源!但是如何在 Jersey 框架中表达这种需求
最佳答案
Jersey throws找不到端点时的javax.ws.rs.NotFoundException
。只需使用异常映射器将其转换为您选择的响应即可:
import javax.ws.rs.NotFoundException;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;
@Provider
public class NotFoundExceptionMapper implements ExceptionMapper<NotFoundException> {
public Response toResponse(NotFoundException exception) {
return Response.status(Response.Status.NOT_FOUND)
.entity("No such resource")
.build();
}
}
关于jersey - HttpServer找不到资源时,在 Jersey 中引发定制的404错误的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26660746/