替换 tomcat 部署的 war 中的单个文件

替换 tomcat 部署的 war 中的单个文件

我想知道如何配置 tomcat 6 以便能够替换 war 中的文件(例如图像或 jsp),这样我就不需要重新启动服务器来保持更新。我想我必须将其部署为目录 - 而不仅仅是将 war 文件复制到 webapp?

谢谢。

答案1

如果您有权访问服务器,您可以将 WAR 展开到单独的目录(使用jar -xf application.war),然后将 web 应用程序添加到 Tomcat 实例TOMCAT_ROOT/conf/Catalina/localhost目录。

例如 - 如果您的应用程序名为“my-app”,您将创建一个包含TOMCAT_ROOT/conf/Catalina/localhost/my-app.xml应用程序详细信息的文件。对于一个非常简单的应用程序,这可能只是类似以下内容:

<Context docBase="/path/to/exploded/application/directory"/>

您可能还会在这里有更复杂的配置(例如数据库连接参数等)。

如果您在更改单个对象(JSP、图像等)后想要重新部署应用程序,则可以使用管理器应用程序重新部署,而无需重新启动整个 Tomcat 环境。

答案2

您可以通过从 webpps 目录中删除 *.war 来部署应用程序。


$ rm -fr /var/lib/tomcat5/webapps/myapp.war

你也可以这样做,如果你连接到 tomcat jmx 管理器http://服务器/管理器/html,因此选择您需要删除的应用程序并单击部署。

答案3

是的,部署一个目录。您还可以推送一个新的 .war 文件,Tomcat 将执行正确的操作,而无需重新启动 Tomcat。

如果我没记错的话,你可以修改已解压的 war 文件,这样就可以了。但是这会导致问题(例如,war 会在重启时重新解压并覆盖)。

相关内容