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

时间:2014-10-01 16:00:00

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

我在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.config文件无关,只能由IIS读取和写入;
  • IIS和Tomcat与BonCode connector;
  • 相关联
  • 为所有站点安装BonCode连接器;
  • 我只运行一个Tomcat实例;
  • 我正在更改IIS配置以设置自定义错误页面和SSL要求。

1 个答案:

答案 0 :(得分:0)

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

这种方式每次部署时,重新部署和覆盖ROOT文件夹都没有关系,因为配置将始终从外部读取。

如何执行此操作的示例是在此POST中我也回答了。

Loading Properties from a JAR file (java 1.6)

希望有所帮助