我正在使用嵌入式Jetty。
我正在尝试使用Jetty的服务器lifeCycleEvents来了解Jetty何时无法启动。具体来说,我尝试使用非空闲的端口加载它。
我看到的是,当我希望调用lifeCycleStarted()
时,会调用lifeCycleFailure()
方法。
我该怎么知道Jetty无法启动? 请参阅以下代码:
_server = new Server(port);
HandlerList handlers = new HandlerList();
DefaultHandler defaultHandler = new DefaultHandler();
_server.setHandler(handlers);
_server.addLifeCycleListener(new LifeCycle.Listener()
{
public void lifeCycleStarting(org.eclipse.jetty.util.component.LifeCycle lifeCycle) {}
public void lifeCycleStopping(org.eclipse.jetty.util.component.LifeCycle lifeCycle) {}
public void lifeCycleStopped(org.eclipse.jetty.util.component.LifeCycle lifeCycle) {}
public void lifeCycleStarted(org.eclipse.jetty.util.component.LifeCycle lifeCycle)
{
loadCompleted(port, true);
}
public void lifeCycleFailure(org.eclipse.jetty.util.component.LifeCycle lifeCycle, java.lang.Throwable throwable)
{
loadCompleted(port, false);
}
private void loadCompleted(int port, boolean success)
{
}
});
答案 0 :(得分:1)
Server.start
将抛出java.net.BindException
。你可以简单地抓住它。