Java 用于在tomcat服务器启动后自动导航到url的Spring MVC设置配置

Java 用于在tomcat服务器启动后自动导航到url的Spring MVC设置配置,java,spring,spring-mvc,tomcat,Java,Spring,Spring Mvc,Tomcat,我在Tomcat的webapps文件夹中有2个war文件,我想在所有war文件完全部署在Tomcat服务器中后点击一个url(当它显示服务器在几毫秒内启动时) 当它显示服务器已启动时,现在是自动点击url的时候了。当我手动点击那个url时,它正在工作,但我需要一些自动方式,要么由服务器自动完成,要么从spring开始 谢谢。从标签上看,我假设您使用spring。。。所以钩住spring启动事件,示例如下 您可以使用一个命令来告诉您Tomcat是否已完全启动。但无论如何,如果它已经启动,并不意味着

我在Tomcat的webapps文件夹中有2个war文件,我想在所有war文件完全部署在Tomcat服务器中后点击一个url(当它显示服务器在几毫秒内启动时)

当它显示服务器已启动时,现在是自动点击url的时候了。当我手动点击那个url时,它正在工作,但我需要一些自动方式,要么由服务器自动完成,要么从spring开始


谢谢。

从标签上看,我假设您使用spring。。。所以钩住spring启动事件,示例如下

您可以使用一个命令来告诉您Tomcat是否已完全启动。但无论如何,如果它已经启动,并不意味着你的应用也启动了。

所以这里你有几个选择

其中最简单的方法是使用LifecycleListener,它侦听applicationReady事件,然后启动一个线程轮询另一个应用程序,直到另一个应用程序准备就绪,并且只要调用另一个应用程序时出现http错误,它就会重试。但是你应该在两次通话之间保持睡眠(例如1秒),否则你会产生太多的负载,以至于其他应用程序很难完成部署。 对另一个应用程序的http调用成功后,轮询线程完成

另一种解决方案是使用rabbitMQ之类的事件服务器,向队列发送“我准备好了”之类的消息,另一个应用程序在准备好时获取mesage。但是您需要一个persistet队列,这样当另一个应用程序还不存在时,消息不会丢失,并且需要在之后清除队列等


我想我应该先试试线程轮询。

谁应该“点击url”?您希望服务器向自身发送HTTP请求吗?为什么?你想实现什么?实际上我的两个war文件是独立部署的,但第二个war文件必须正确部署,然后它应该命中我的第一个war文件才能开始处理,在这种情况下,第一个war文件在命中之前保持空闲。但我不想等待用户,我想在tomcat服务器启动后立即处理它。您不需要请求就可以开始在应用程序中执行操作。我在第二次世界大战文件中使用了Spring ApplicationListener来完成第一次世界大战。但是当我启动服务器时,我的第一个war文件正在部署。但第二个仍然处于部署模式,并且它没有响应,就像在服务器超时10分钟后显示的那样。当我进行调试时,点击url是可以的。但是当它点击url的时候,控制就不来了。我已经尝试过LifecycleListener,但是它不适用于这个引用。我认为这个spring应用程序Listener对我来说不起作用。因为它应该在服务器启动后调用,所以我在第二次war中嵌入了这个applicationlistner,并用application-context.xml添加了这个bean。我希望在服务器完全启动后点击url。这里有两件事——服务器启动和应用程序部署,我认为您混淆了这两件事。服务器可能会启动,但不会部署任何应用程序。您希望在部署所有应用程序后点击url。在这种情况下,您必须搜索特定于服务器的解决方案,以便进行有序部署。设置顺序,并仅在将部署的最后一个应用程序上使用ApplicationListener。