有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在Tomcat中取消部署java webapp,但保持IIS网站配置?

我有一个java webapp,在iis8之后的Tomcat7下运行(都是为多主机配置的)

为了更新web应用程序,我通常会取消部署现有的WAR并部署一个新的WAR(它的文件夹结构会发生爆炸),但这会导致删除IIS web.config文件,从而失去所有(IIS)网站设置

据我所知(但我对IIS不熟悉),在IIS中,网站的物理路径是webapp根文件夹(即/path/to/tomcat/webapp/ROOT从名为ROOT.war的战争中分解出来),当我在IIS中配置错误页面时,会创建文件ROOT/web.config

有没有办法避免丢失配置文件?或者我应该总是在不首先取消部署web应用程序的情况下重新部署新的war吗

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

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

共 (1) 个答案

  1. # 1 楼答案

    当你在tomcat中部署一场战争时,让我们假设你的战争叫做MyWar。war,文件夹MyWar被创建并替换其中的任何内容。有时,像在您的案例中,从war之外读取配置文件(您不想覆盖的配置文件)是一种很好的做法。如果你能访问你的代码并编译/重新部署,你就能做到这一点。你需要做的是从你阅读网站的地方重新编写代码。配置并尝试将其作为外部文件资源(FileInputStream)而不是资源流(这可能是您读取配置文件的方式)读取

    这样,每次部署时,重新部署并覆盖根文件夹并不重要,因为配置总是从外部读取的

    我还回答了一个如何做到这一点的例子

    Loading Properties from a JAR file (java 1.6)

    希望有帮助