在码头重新加载上下文

时间:2010-11-24 11:49:50

标签: jetty

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

  1. 启动码头

  2. 将war1.war放入/ webapps - >它会触发一个新的/ war1上下文并且有效。

  3. 将war2.war放入/ webapps - >它会触发一个新的/ war2上下文并且有效。

  4. 假设我在war1.war中对开发进行了一些更改。我想在/ webapps中升级war1.war,但是Windows抱怨正在使用这个文件。

  5. 我停止码头

  6. 我把新的war1.war放在/ webapps中 - >一切都好。

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

1 个答案:

答案 0 :(得分:3)

我认为你遇到了Files locked on Windows所描述的问题:

  

Jetty缓冲web应用程序的静态内容,例如html文件,css文件,图像等,如果正在使用NIO连接器,则使用内存映射文件执行此操作。问题是在Windows上,内存映射文件会导致文件被锁定,因此无法更新或替换文件。这意味着您必须有效地停止Jetty才能更新文件。

有两种解决方案,均在上述链接中记录:

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