The .startWithUnavailable(boolean) option is an old school concept, from back in the Jetty 7.0.0 days (circa 2008)
What it does is allow the WebAppContext to continue running if any Servlet init failed (from a servlet / filter / listener / etc) to initialize. This value is set to false by default. This is not what you want. The .throwUnavailableOnStartupException(boolean) is a configuration related to a single WebAppContext. It will collect all of the various reasons the webapp failed to init and then report it as a single Throwable on startup. The key here is "on startup". By default, the DeploymentManager will "on startup" deploy what it finds, then start monitoring the configured directories for changes and perform hot deploys. The "on startup" part of this will throw an exception up to the Server and let the server know that something failed. But if you have a hot deploy, then this exception is logged, and the WebAppContext is set to unavailable, but nothing else. Now, for the sad part, the way that the XML is loaded in `jetty-home` (or the older `jetty-distribution`) all webapps are considered "hot deploy" I've opened an issue about this at https://github.com/eclipse/jetty.project/issues/3620 Joakim Erdfelt / [email protected] On Wed, May 1, 2019 at 11:30 AM Pavel <[email protected]> wrote: > Hello everyone. > > The goal I'm struggling to achieve is stopping jetty if my web app is > unavailable: > > 2019-05-01 16:17:30.339:INFO:oejs.Server:main: jetty-9.4.5.v20170502 > 2019-05-01 16:17:30.363:INFO:oejdp.ScanningAppProvider:main: Deployment > monitor [file:///usr/local/jetty-distribution-9.4.5.v20170502/webapps/] > at interval 1 > 2019-05-01 16:17:34.435:INFO:oeja.AnnotationConfiguration:main: Scanning > elapsed time=3706ms > 2019-05-01 16:17:34.436:WARN:oejw.WebAppContext:main: Failed startup of > context o.e.j.w.WebAppContext@6a024a67{/rest, > file:///usr/local/jetty-distribution-9.4.5.v20170502/work/jetty-0.0.0.0-8406-rest.war-_ > rest-any-/webapp/,UNAVAILABLE}{/rest.war} > > I guess `startWithUnavailable` config option is what I'm looking for, but > apparently I'm not setting it correctly. Can someone please tell me how the > xml should look like and where to place it? > > Another option I found is `throwUnavailableOnStartupException` (set in > jetty-env.xml). That works in that the exception bubbles up from > WebAppContext - > https://github.com/eclipse/jetty.project/blob/jetty-9.4.5.v20170502/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebAppContext.java#L557, > but according to logs it stops at > https://github.com/eclipse/jetty.project/blob/jetty-9.4.5.v20170502/jetty-deploy/src/main/java/org/eclipse/jetty/deploy/DeploymentManager.java > and jetty remains running. > Any help is much appreaciated. Thank you! > > Sincerely, Pavel > > _______________________________________________ > jetty-users mailing list > [email protected] > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://www.eclipse.org/mailman/listinfo/jetty-users
_______________________________________________ jetty-users mailing list [email protected] To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jetty-users
