java - Webapp startup fails but Jetty LifeCycle claims "started" -
i'm using embedded jetty launch standard java webapp. launcher this:
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(); ...
this works fine in can start app , browse , appears working.
but i'm trying add error reporting launcher. i've temporarily set webapp throw exception in contextinitialized()
method of servletcontextlistener
. exception thrown, , log message of
error org.eclipse.jetty.util.log failed startup of context webappcontext@...
but lifecyclelistener not receieve failure event. in fact, receives started event, , webaddcontext
passed listener returns false lifecycle#isfailed()
, true lifecycle#isrunning()
.
browsing webapp results in 503 service unavailable errors.
this happens in jetty versions 7.0.1.v20091125 , 7.2.1.v20101111. see jetty 7 api docs.
as per comments heri's answer, webappcontext swallows exceptions. otherwise caught abstractlifecycle , failure events sent out. gets me of way there:
public class throwywebappcontext extends webappcontext { @override protected void dostart() throws exception { super.dostart(); if (getunavailableexception() != null) { throw (exception) getunavailableexception(); } } }
Comments
Post a Comment