【发布时间】:2010-12-01 21:29:37
【问题描述】:
我正在使用嵌入式 Jetty 来启动标准 Java webapp。我的启动器是这样的:
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();
...
这一切都很好,因为我可以启动我的应用并浏览到它,一切似乎都在工作。
但现在我正在尝试向我的启动器添加错误报告。我暂时将我的 web 应用程序设置为在 ServletContextListener 的 contextInitialized() 方法中引发异常。抛出异常,我收到一条日志消息
ERROR org.eclipse.jetty.util.log Failed startup of context WebAppContext@...
但我的 LifeCycleListener 没有收到任何失败事件。实际上,它接收到一个启动事件,并且传递给侦听器的WebAddContext 对于LifeCycle#isFailed() 返回false,对于LifeCycle#isRunning() 返回true。
浏览到我的 web 应用会导致 503 Service Unavailable 错误。
这发生在 Jetty 版本 7.0.1.v20091125 和 7.2.1.v20101111 中。见Jetty 7 api docs。
【问题讨论】:
标签: java web-applications jetty embedded-jetty