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)
希望这可以帮助!
实现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只雄猫之间的某些事情可能会有所不同.