1

我有一个构建应用程序的 Jenkins 项目,然后,如果成功,将应用程序复制到我们的测试环境并重新启动 Tomcat 服务器。Tomcat 启动大约需要 90 秒。如何自动和/或以编程方式检查 Tomcat 启动是否成功,以便触发部署到我们的暂存环境?我们有一个我可以监控的监控 URL,但我不知道如何在 Jenkins 中实现它。

4

2 回答 2

1

创建一个 ant scriptlet,并将两件事放入并行任务中:

  • 使用exec任务启动 Tomcat
  • 一个带有套接字侦听器的条件元素,用于在waitfor内的 tomcat 的 http 端口。您可以定义 timout 属性,如果它是在 waitfor 之后定义的,您可以使用fail来使构建失败。要检查该属性,您可以简单地创建一个带有条件运行的子目标,在等待之后您可以调用它。

所以是这样的:

<target name="runCheckedTomcat">
    <parallel>
        <sequential>
            <echo>Tomcat starts</echo>
            <exec command="start.bat" dir="tomcatdir">
            </exec>
        </sequential>
        <sequential>
            <waitfor timeoutproperty="timeout" maxwait="15" maxwaitunit="second">
                <socket server="localhost" port="8080"/>
            </waitfor>
            <antcall target="fail"/>
        </sequential>
    </parallel>
</target>

<target name="fail" if="timeout">
    <fail message="Tomcat is not started in time"/>
</target>
于 2012-10-20T22:18:31.897 回答
1

我只是通过在 Jenkins 中设置一个执行以下命令的简单 exec-job 来解决这个问题。

curl -f -m 120 -o /dev/null -s -S http://example.org:8080/application
于 2012-10-22T10:30:55.343 回答