默认情况下,泽西岛被打破。它既不在返回的HTML中也不在日志文件中显示异常。由于部署限制,我不能使用Jersey资源的XML注册机制,而是以编程方式进行。以下内容无效:
@Provider
public class ExceptionDump implements ExceptionMapper<WebApplicationException> {
@Override
public Response toResponse(WebApplicationException ex) {
String trace = Exceptions.getStackTraceAsString(ex);
return Response.status(500).entity(trace).type("text/plain").build();
}
}
public class App extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> cls = new HashSet<Class<?>>(super.getClasses());
cls.add(ExceptionDump.class);
return cls;
}
...
}
Grizzly容器加载并运行,但异常映射器被忽略,Grizzly仍然只显示&#34;请求失败。&#34;关于错误。
答案 0 :(得分:0)
通过使用比WebApplicationException
更高的(更高)类来修复此问题,例如Throwable
。简单来说,有些异常会从WebApplicationException
继承,因此网络上的大多数示例显示WebApplicationException
都是错误的,而不会发出许多内部错误的警告除非使用更一般的父母,否则不予报告。