Java 例外情况在灰熊中不工作

Java 例外情况在灰熊中不工作,java,jersey,jax-rs,grizzly,exceptionmapper,Java,Jersey,Jax Rs,Grizzly,Exceptionmapper,对不起,我的英语很差。 我正在使用grizzly和jersey构建一个web应用程序 我是这样实现的 ErrorModel errorModel = new ErrorModel("1", "1", "1"); WebApplicationException applicationException = (WebApplicationException) exception; return Response.status(applicationEx

对不起,我的英语很差。 我正在使用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页面。
我应该怎么做

确保您已设置了“响应”\u“状态”\u“结束”\u“发送”\u“错误”属性集

grizzly也有同样的问题,它捕获了我的400,并返回默认的通用servlet错误页面。这就是泽西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();
    }

如果命中此映射器,然后在最初调用此方法(
toResponse
)的时间和整个响应周期的剩余时间之间,如果引发另一个异常,它将冒泡到容器级别,容器将处理该异常。这是为了保护我们不受无限循环的影响。这可能就是正在发生的事情。在响应体的序列化过程中可能会发生一些异常。谁知道呢。只是猜测而已。为了获得更好的帮助,请发布“是”,当设置了响应、设置、状态、结束、发送错误时,一切都很好。感谢peeskillet和您。