【问题标题】:How to undeploy a java webapp in Tomcat but keep IIS website configuration?如何在 Tomcat 中取消部署 java webapp 但保留 IIS 网站配置?
【发布时间】:2014-10-02 17:14:03
【问题描述】:

我有一个在 IIS 8 后面的 Tomcat 7 下运行的 java webapp(两者都配置为多主机)。

要更新 Web 应用程序,我通常会取消部署现有的应用程序并部署一个新的 WAR(它会在其文件夹结构中爆炸),但这会导致 IIS web.config 文件被删除,从而丢失所有 (IIS)网站设置。

据我所知(但我是 IIS 新手),在 IIS 中,网站物理路径是 webapp ROOT 文件夹(即 /path/to/tomcat/webapp/ROOT 从名为 ROOT.war 的 WAR 分解而来),当我配置错误时在 IIS 页面中,创建文件 ROOT/web.config。

有什么方法可以避免丢失该配置文件?还是我应该始终重新部署新的战争而不先取消部署 Web 应用程序?

如果需要,这里有几个细节:

  • 我的 web 应用程序与 web.config 文件无关,它仅由 IIS 读写;
  • IIS和Tomcat用BonCode connector连接;
  • 已为所有站点安装 BonCode 连接器;
  • 我只运行一个 Tomcat 实例;
  • 我正在更改 IIS 配置以设置自定义错误页面和 SSL 要求。

【问题讨论】:

    标签: java tomcat iis web-applications web-config


    【解决方案1】:

    当你在 tomcat 中部署一个战争时,假设你的战争被称为 MyWar.war,MyWar 文件夹被创建并替换其中的任何内容。有时这是一个很好的做法,就像你的情况一样,从战争之外读取配置文件(你不想覆盖的配置文件)。如果您可以访问您的代码并编译/重新部署,您将能够做到这一点。您需要做的是从您读取 web.config 的位置重新编写代码,并尝试将其作为外部文件资源 (FileInputStream) 而不是 ResourceAsStream 读取(这可能是您正在阅读的方式你的配置文件)。

    这样每次部署时,重新部署并覆盖 ROOT 文件夹都没有关系,因为总是会从外部读取配置。

    如何做到这一点的一个例子是在这篇文章中我也回答了。

    Loading Properties from a JAR file (java 1.6)

    希望对你有帮助

    【讨论】:

    • 一点小说明:web.config 是一个IIS 读写文件,我的Web 应用程序与它无关。最好的办法是将它移到其他地方,但我不知道这是否可能。
    • 哦,好的。好吧,我想一定有某个地方可以编辑 IIS 配置并指定配置文件的位置。如果这无法完成(我不知道,因为我之前没有使用过 IIS),那么您将不得不复制您的文件,将其保存在其他地方,如果您必须重新部署 tomcat,部署然后将文件替换为您的文件已保存。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 2017-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多