java - ExceptionMapper 在 grizzly 中不起作用

标签 java jersey jax-rs grizzly exceptionmapper

抱歉我的英语不好。 我正在使用 grizzly 和 jersey 构建 Web 应用程序。

我是这样实现的

        ErrorModel errorModel = new ErrorModel("1", "1", "1");
        WebApplicationException applicationException = (WebApplicationException) exception;
        return Response.status(applicationException.getResponse().getStatus()).type(MediaType.APPLICATION_JSON_TYPE).entity(errorModel).build();

当我访问一个不存在的页面时。 我发现它抛出一个WebApplicationException。 所以我调试并发现这个方法正在被调用并返回上面的响应。 但最终http响应是一个由grizzly构建的html页面。 我该怎么办

最佳答案

确保您已设置 RESPONSE_SET_STATUS_OVER_SEND_ERROR 属性。

我在 grizzly 上也遇到了同样的问题,它正在捕获我的 400 并发送回默认的通用 servlet 错误页面。这是 Jersey 2 的解决方案。

public class RestApplication extends ResourceConfig {

    private static final Logger logger = Logger.getLogger(RestApplication.class.getName());

    public RestApplication() {
        // Set this property so that the 400 will still send the entity correctly.
        property(ServerProperties.RESPONSE_SET_STATUS_OVER_SEND_ERROR, "true");
        registerModules();
    }

关于java - ExceptionMapper 在 grizzly 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28803204/

相关文章:

javascript - 为什么使用不同电脑时 "WebRTC Screen sharing"不流?

java - 在 Bukkit config.yml 中为字符串添加颜色代码翻译

java - Rest API 最佳实践 : Multiple parameters search filter API implementation

api - 我应该使用什么规范来记录 REST API?

java - 为 JerseyTest 配置带有 SSL 的 JettyTestContainer

rest - Jersey vs Jersey(独立)vs Jersey with Grizzly vs Jersey with Tomcat - 用于REST服务?

java - 按下多个键时,libGDX InputProcessor 无法正常运行

java - 在 Tomcat 6 上运行使用 Tomcat 7 构建的 Eclipse 项目

java - 通过RestAPI删除Neo4j的所有节点和关系

java - 将 SpringMVC 用于仅休息的 Web 项目会产生开销吗?