我在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读取和写入; 答案 0 :(得分:0)
当您在tomcat中部署战争时,假设您的战争名为MyWar.war,创建了MyWar文件夹并替换了其中的任何内容。有时,在你的情况下,从战争之外读取配置文件(你不想覆盖的配置文件)是一个很好的做法。如果您可以访问代码并编译/重新部署,则可以执行此操作。你需要做的是重新编写你读 web.config 的代码并尝试将其作为外部文件资源(FileInputStream)而不是ResourceAsStream(这可能就是你在阅读你的配置文件)。
这种方式每次部署时,重新部署和覆盖ROOT文件夹都没有关系,因为配置将始终从外部读取。
如何执行此操作的示例是在此POST中我也回答了。
Loading Properties from a JAR file (java 1.6)
希望有所帮助