embedded jetty不报告启动失败

时间:2013-08-25 04:58:54

标签: java jetty embedded-jetty

我正在使用嵌入式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)
   {
   }
});

1 个答案:

答案 0 :(得分:1)

如果端口已在使用中,

Server.start将抛出java.net.BindException。你可以简单地抓住它。