[英]Register an ExceptionMapper in Jersey 2.10.4
默認情況下,Jersey是損壞的。 它既不在返回的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仍然僅顯示“請求失敗”。 錯誤。
通過使用比WebApplicationException
高得多的類(例如Throwable
。 簡而言之,有一些異常不是從WebApplicationException
繼承而來的,因此對於大多數Web示例來說,顯示WebApplicationException
是錯誤的,沒有警告,除非使用更通用的父對象,否則許多內部錯誤將不會被報告。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.