Я использую встроенный Jetty для запуска стандартного веб-приложения Java. Мой лаунчер примерно такой:
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.util.component.LifeCycle.Listener;
import org.eclipse.jetty.webapp.WebAppContext;
...
Listener listener = ...;
Server server = new Server(8080);
WebAppContext webapp = new WebAppContext();
...
webapp.addLifeCycleListener(listener);
server.setHandler(webapp);
server.start();
...
Это все работает нормально, я могу запустить свое приложение и просмотреть его, и все, кажется, работает.
Но сейчас я пытаюсь добавить сообщение об ошибке в мою программу запуска. Я временно установил в своем веб-приложении исключение в методе contextInitialized()
для ServletContextListener
. Исключение выдается, и я получаю сообщение журнала
ERROR org.eclipse.jetty.util.log Failed startup of context WebAppContext@...
но мой LifeCycleListener не получает никаких событий сбоя. Фактически, он получает запущенное событие, и WebAddContext
, переданный слушателю, возвращает false для LifeCycle#isFailed()
и true для LifeCycle#isRunning()
.
Просмотр моего веб-приложения приводит к ошибкам 503 Service Unavailable.
Это происходит в версиях Jetty 7.0.1.v20091125 и 7.2.1.v20101111. См. Jetty 7 api docs .