等到tomcat完成启动

tim*_*ney 29 java linux tomcat

我有一个脚本需要在tomcat完成启动后运行并准备开始部署应用程序.我正在使用$TOMCAT_HOME/bin/startup.sh哪个立即返回.我怎么能等到tomcat完成启动?

Mat*_*nit 40

可能有几种方法可以做到这一点.我们使用的技巧是:

#!/bin/bash

until [ "`curl --silent --show-error --connect-timeout 1 -I http://localhost:8080 | grep 'Coyote'`" != "" ];
do
  echo --- sleeping for 10 seconds
  sleep 10
done

echo Tomcat is ready!
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!


dao*_*way 8

实现programaticaly并不难.你可以实现org.apache.catalina.LifecycleListener然后你就可以了

public void lifecycleEvent(LifecycleEvent lifecycleEvent) {
            if(lifecycleEvent.getType().equals(Lifecycle.START_EVENT))
            //do what you want
            }       
}
Run Code Online (Sandbox Code Playgroud)

在web.xml中:

<Context path="/examples" ...>
...
<Listener className="com.mycompany.mypackage.MyListener" ... >
...
</Context>
Run Code Online (Sandbox Code Playgroud)

请注意,6-9只雄猫之间的某些事情可能会有所不同.