jersey - HttpServer找不到资源时,在 Jersey 中引发定制的404错误的地方

标签 jersey http-status-code-404 httpserver

我想自定义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/

相关文章:

java - 运行Java jar应用程序时如何在系统任务栏中重新运行用javafx编写的用户界面

python - HTTPServer.shutdown 返回但套接字仍然打开

java - jersey http客户端自定义请求方式

jersey - JAX-RS/Jersey 2 文件下载 - 是否有服务器和生成的客户端代理的通用 API

java - 启动Tomcat服务器时如何使用命令行传递参数?

java web 服务器 - 浏览器找不到新创建的文件,直到服务器重新启动

java - Spring MVC : custom error page for 404s without web. xml 文件

php - Google 报告了一些实际上并不存在的 404 错误。这是否表明我的网站被黑了?

java - 如何让HttpServer识别Java中的特殊字符?

java - 在 Jersey POST 处理程序中注入(inject) HttpServletRequest