我试图在dropwizard 1.0.2中设置自定义ErrorHandler
在run方法的Application类中,我有以下几行:
environment.getApplicationContext().setErrorHandler(new CustomErrorHandler());
environment.getAdminContext().setErrorHandler(new CustomErrorHandler());
然而,未调用来自CustomErrorHandler
的代码,而是在例如使用默认的ErrorHandler类时使用我点击了无法提供的网址。
在调试问题时,我意识到ContainerLifeCycle
对象包含以下bean:{org.eclipse.jetty.server.handler.ErrorHandler@375084c9,AUTO}
并且不包含CustomErrorHandler
的bean。我的猜测是,在应用程序启动后稍后设置默认ErroHandler时,我的错误处理程序会被覆盖。
任何指针如何设置自定义错误处理程序将非常感激。
答案 0 :(得分:0)
我设法做到这一点的唯一方法是在服务器生命周期监听器中,例如
environment.lifecycle().addServerLifecycleListener(new ServerLifecycleListener() {
@Override
public void serverStarted(Server server) {
server.setErrorHandler(new MyCustomErrorHandler());
}
});