我的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?
答案 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中创建一个标准的远程调试配置,如下所示:
并点击“Debug”。即使您不打算进行任何调试,将调试器连接到远程Jetty VM也会导致实时部署类更改。
您唯一应该注意的是VM热插拔类的能力的限制。类的“形状”不能改变,因此任何新的类成员定义或新方法,你需要重新加载Web上下文(只需“触摸”上下文的XML文件,Jetty将重新加载它)。
希望有所帮助。