我面临以下问题:每当我尝试使用应用程序实例启动Jetty时,我都需要检查应用程序是否正在运行。我需要从蚂蚁目标做到这一点。 我希望有一些行为类似于以下伪代码:
**
<target name="target1"
depends="run-jetty-with-application"
description="Target1">
<--when run-jetty-with-application is ok(jetty is up and application is running)-->
<antcall target="target2"/>
<--end when-->
</target>
** 我还应该提一下,我没有公开的网址,可以告诉我应用程序的状态。 我不是在追求像waitfor这样的hacky解决方案。
提前致谢!
答案 0 :(得分:1)
只有两种方法可以了解Jetty是否已启动,所有Web应用程序都已正确部署,所有生命周期均已成功启动,并且服务器可用于提供内容。
.lifeCycleStarted(LifeCycle event)
,然后遍历整个处理程序树,查找无法通过其部署的任何Handler组件的DeploymentManager。你可以想象,第一种技术是最简单的。
这是Ant中的<waitfor>
工具,and is what the Jetty project itself uses。
第二种方法需要自定义Ant任务。
你可以自己写,也知道它会做你想要的。或者使用带有守护进程模式的jetty-ant tasks来获得几乎相同的东西(守护进程模式下的JettyRunTask启动服务器,但它不会等待开始完成或webapps成功部署在它将控制权返回给ant之前。