2010-11-24 63 views
1

我有一个与上下文重新加载有关的问题。我做什么:码头重新加载上下文

  1. 开始码头

  2. 放于/ webapps中war1.war - >触发一个新的/ WAR1背景和它的作品。

  3. 将war2.war放在/ webapps - >中,它触发了一个新的/ war2上下文,它起作用。

  4. 假设我在war1.war中进行了一些变更。我想升级/ webapps中的war1.war,但是Windows抱怨正在使用此文件。

  5. 我停止码头

  6. 我把新war1.war在/ webapps中 - >一切ok。

问题 - >如何在不关闭jetty的情况下重新加载war1.war?

回答

3

我想你已经运行到在Files locked on Windows描述的问题:对的webapps如HTML文件,CSS文件,图像等

码头缓存静态内容和使用内存映射文件,如果NIO做到这一点正在使用连接器。问题是,在Windows上,映射文件的内存会导致文件被锁定,因此文件无法更新或替换。这意味着您必须停止Jetty才能更新文件。

有两个解决方案,无论是在上面的链接记载:

  • 禁用存储器映射;
  • 在部署时始终复制Web应用程序目录。