Servlets Jetty:检测Webapp是否无法启动
我正在启动一个嵌入式Jetty实例,其中包含一个webapp。webapp在启动时启动我想知道如何检测Webapp的contextInitialized是否引发异常。Servlets Jetty:检测Webapp是否无法启动,servlets,jetty,Servlets,Jetty,我正在启动一个嵌入式Jetty实例,其中包含一个webapp。webapp在启动时启动我想知道如何检测Webapp的contextInitialized是否引发异常。 当webapp引发异常时,不会引发异常,并且server.isRunning()返回true。有没有一种方法可以让我从容器外部监听webapp异常?回答我自己的问题 设置WebAppContext.setThrowUnavailableOnStartupException(true)会导致服务器将任何webapp异常传播到serv
当webapp引发异常时,不会引发异常,并且server.isRunning()返回true。有没有一种方法可以让我从容器外部监听webapp异常?回答我自己的问题
设置
WebAppContext.setThrowUnavailableOnStartupException(true)
会导致服务器将任何webapp异常传播到server.start()
。我猜在服务器启动后也可以调用WebAppContext.isFailed()
来检查各个上下文。我在尝试为非嵌入式解决方案实现这一点时偶然发现了这一点。如果有人在类似的船上,该情况的解决方案是使用以下内容创建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>
真的
服务器将按预期在异常情况下启动失败。在Jetty 9方法中
WebAppContext.setThrowUnavailableOnStartupException(true)
,但您可以通过WebAppContext.isAvailable()
检查webapp是否可用,以及使用WebAppContext.getUnavailableException()启动时可能出现的错误
.org.eclipse.jetty.deployment.DeploymentManager requestAppGoal方法不要重新引发异常,它只记录org.eclipse.jetty.webappWebAppContext.java.doStart()生成的异常堆栈跟踪。那么,它如何传播到Server.start()?注意:DTD对Jetty 9.3+无效。