所以,我已经将Java Web应用程序(myapp.war)部署到恰好在Amazon EC2上运行的Tomcat 7服务器上。我注意到,当我这样做时,它会在部署时覆盖名为myapp的类似名称的目录。我进一步意识到应用程序实际上是从myapp目录提供的,当我直接对该目录中的文件进行更改时,更改将按预期提供给客户端。
我的问题是Tomcat是否对重新部署之间的目录做了什么?如果我对该目录中的文件进行少量更改,在重新部署之前是否会被覆盖?
答案 0 :(得分:1)
取决于。
可能会忽略对类文件的更改。
对JSP的更改可能会生效,具体取决于是否已访问JSP以及JSP Servlet是否配置为检查更改。
对静态文件的更改可能会生效,但可能会因静态文件缓存的影响而延迟。通常,延迟只有几秒钟,但可以配置为更长。
编辑web.xml可能会触发重新加载(同样可以通过配置禁用)
编辑contex.xml可能会触发重新部署。
重新加载暂停应用程序,重新读取web.xml并取消暂停应用程序,这样用户可能会看到短暂停顿但没有404s。 Redploy完全删除旧应用程序并创建一个新应用程序。用户在尝试在错误的时间访问它时可能会看到404。
一旦部署了新的WAR文件,所有本地更改都将丢失。