簡體   English   中英

在Jersey 2.10.4中注冊ExceptionMapper

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM