我正在启动一个包含单个webapp的嵌入式Jetty实例。 webapp在启动时启动。 我想知道如何检测Webapp的contextInitialized是否会引发异常。
当webapp抛出异常时,Server.start()没有,而server.isRunning()返回true。有没有办法让我从容器外听取webapp异常?
答案 0 :(得分:6)
回答我自己的问题。
设置WebAppContext.setThrowUnavailableOnStartupException(true)
会导致服务器将任何webapp例外传播到Server.start()
。我猜测在服务器启动后也可以调用WebAppContext.isFailed()
来检查各个上下文。
答案 1 :(得分:5)
我偶然发现了这个尝试使这个工作用于非嵌入式解决方案。如果有人在类似的船上,那么该案例的解决方案是使用以下内容创建WEB-INF/jetty-env.xml
:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="throwUnavailableOnStartupException">true</Set>
</Configure>
服务器将按预期在异常启动时失败。