如何从 Windows .bat 启动 Tomcat webapp

Posted

技术标签:

【中文标题】如何从 Windows .bat 启动 Tomcat webapp【英文标题】:how to start a Tomcat webapp from a Windows .bat 【发布时间】:2021-04-17 14:45:29 【问题描述】:

我正在尝试从 bat 文件运行 Tomcat webapps,其中一些使用 Windows 调度程序,而一些当应用程序和网络监视器检测到其进程已关闭时

谁能告诉我这个主题在哪里解释。提前致谢!

【问题讨论】:

“运行一个 webapp” 你的意思是启动 Tomcat 或打开应用程序的一个页面? 后者,让 webapp 启动并运行 为了更清楚,我需要知道 Tomcat 必须从 Windows 以自动方式启动或停止 webapp 的方法或服务。也就是类似于在webapp中通过Tomcat Manager的各个按钮手动操作的功能 【参考方案1】:

您可以使用Tomcat Manager's text interface 启动、停止和重新加载应用程序。例如

http://localhost:8080/manager/text/start?path=/webapp

将启动应用程序/webapp。您可以通过任何能够发出 HTTP 请求的命令从脚本中使用它,例如:

curl -u user:password http://localhost:8080/manager/text/start?path=/webapp

其中userpassword 是具有manager-script 角色的Tomcat 用户的凭据。

【讨论】:

啊,感谢您用您的知识阐明,我非常感谢我现在有一条有希望的途径来解决我的困境。我不知道如何处理这项任务。我一定会探索这个想法。非常感谢您的帮助【参考方案2】:

Java Web 应用程序被定义为由 JEE 容器执行。此容器可以是 Apache Tomcat、Apache Geronimo、Wildfly 或许多其他容器。没有办法解决这个问题。

但是,您可以通过 Windows 批处理文件启动使用您的 Web 应用程序预先配置的此类容器。另一方面,您描述的是批处理文件不是您的目的-您希望能够安排启动/停止并在需要时自动重新启动。

Windows 附带了一个很棒的工具来启动和管理后台进程。后台进程称为服务,JEE 容器可以作为服务安装。看看这个不错的文档: https://tomcat.apache.org/tomcat-9.0-doc/windows-service-howto.html

【讨论】:

感谢您为此类问题提供的替代解决方案。 Tomcat9 //RS//ServiceName 命令要求已经定义了与 webapp 相关的 Windows 服务。 IDK 如何将 webapp 定义为服务。带有 cURL 的命令行解决方案允许将参数传递给 webapp 的执行,在我们的例子中似乎更可取。或者也许我错了,这也可以通过服务来实现,例如通过环境变量或文件中的数据 请注意,您不会将 Web 应用安装为服务。它是整个 Tomcat。但是,如果您仅将 Tomcat 用于一个 webapp,那么 webapp 的名称仍然有意义。只需查看有关安装服务的部分:tomcat.apache.org/tomcat-9.0-doc/… 啊哈,我明白了。因此,每一个 ServiceName 都是 webapp,就像您在 Tomcat 管理器的应用程序列表中看到它们一样。好的,这对我也很有用,谢谢

以上是关于如何从 Windows .bat 启动 Tomcat webapp的主要内容,如果未能解决你的问题,请参考以下文章

如何启动一个进程以从 Windows 服务运行 bat 文件

tomcat启动一闪而过

如何通过 bat 文件关闭、重新启动或注销 Windows?

如何创建一个启动和停止多个'exe'/'bat的Windows服务

windows bat 批处理如何检测tomcat端口启动

如何把windows下的bat(批处理)作成服务