Java 例外情况在灰熊中不工作
对不起,我的英语很差。 我正在使用grizzly和jersey构建一个web应用程序 我是这样实现的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
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和您。