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

时间:2011-03-26 08:23:02

标签: 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.WebAppContext">
      <Set name="war">path/to/webapp</Set>
      <Set name="contextPath">/</Set>
</Configure>

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

有没有办法告诉jetty在更改后重新加载webapp?

1 个答案:

答案 0 :(得分:1)

碧玉,

我找到了一种方法来完成这项工作(感谢this question)。如果您在调试模式下运行Jetty并将Eclipse调试器连接到它,则VM将立即热交换类更改。

运行Jetty(我正在使用Jetty 8 w / JDK 6):

java -agentlib:jdwp=transport=dt_socket,server=y,address=8000,suspend=n -jar start.jar

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

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

您唯一应该注意的是VM热插拔类的能力的限制。类的“形状”不能改变,因此任何新的类成员定义或新方法,你需要重新加载Web上下文(只需“触摸”上下文的XML文件,Jetty将重新加载它)。

希望有所帮助。