Java 告诉Jetty重新加载webapp更改,而不是context.xml更改

Java 告诉Jetty重新加载webapp更改,而不是context.xml更改,java,xml,web-applications,jetty,Java,Xml,Web Applications,Jetty,我让jetty运行一些context.xml: <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd"> <Configure class="org.eclipse.jetty.webapp.WebAppCont

我让jetty运行一些context.xml:

<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
      <Set name="war">path/to/webapp</Set>
      <Set name="contextPath">/</Set>
</Configure>

路径/to/webapp
/
(路径不是默认路径。) 每次更改都会重建webapp,但我仍然需要伪造对context.xml的一些写访问权限,以使jetty重新加载webapp

有没有办法告诉jetty在更改后重新加载Web应用程序?

Jasper

我找到了一种方法来实现这一点(多亏了)。如果在调试模式下运行Jetty并将Eclipse调试器连接到它,VM将立即热交换类更改

使用运行Jetty(我使用的是jetty8w/jdk6):

然后在Eclipse中创建一个标准的远程调试配置,如下所示:

然后点击“调试”。即使您不打算调试任何东西,将调试器连接到远程Jetty VM也会导致实时部署类更改

您唯一应该注意的是VM热交换类的能力的局限性。类的“形状”无法更改,因此任何定义的新类成员或新方法都需要重新加载web上下文(只需“触摸”上下文的XML文件,Jetty就会重新加载它)


希望这能有所帮助。

发现了这个问题,因为我想知道完全相同的事情。Jasper你知道怎么做了吗?我还对一个解决方案很感兴趣(它不涉及Eclipse或任何其他重量级的第三方应用程序)。到目前为止,我还没有找到一个解决方案。
java -agentlib:jdwp=transport=dt_socket,server=y,address=8000,suspend=n -jar start.jar