我在Tomcat的webapps文件夹中有2个war文件,我希望在tomcat服务器完全部署所有war文件后点击一个url(当它显示服务器以某些毫秒)启动时< / p>
当它显示服务器启动时,现在是时候自动点击一个网址。当我手动点击该网址时它正在工作,但是我希望服务器能够自动或从春天开始自动执行。< / p>
感谢。
答案 0 :(得分:0)
所以从标签我假设你使用spring ...所以挂钩弹簧启动事件,例子在这里 How to add a hook to the application context initialization event?
答案 1 :(得分:0)
您可以使用LifeCycleListener来告诉您Tomcat是否已完全启动。但无论如何,如果它已经开始并不意味着你的应用程序确实也开始了。
答案 2 :(得分:0)
所以这里有几个选择。
最简单的方法是使用LifecycleListener监听applicationReady事件,然后启动一个轮询其他应用程序的线程,直到另一个应用程序准备就绪,只要在调用其他应用程序时出现http错误就会重试。但是你应该在两次调用之间睡觉(例如1秒),否则你将产生很多负载,而另一个应用程序将很难完成其部署。 在对其他应用程序的http调用成功后,轮询线程结束。
另一种解决方案是使用像RabbitMQ这样的事件服务器,然后向队列发送“我已经准备好”的消息,另一个应用程序在准备就绪时获取消息。但是你需要一个persistet队列,所以当其他app还没有时,消息不会丢失,之后需要清除队列等。
我想我先尝试线程轮询。