2009-06-11 97 views
0

当您在Jetty上拥有本机Java代码时,您可以执行热部署。什么限制“热部署”?

例如,这允许您对servlet代码进行更改,而无需重新启动服务器以查看应用程序更改。但是,如果您在Java之上运行脚本语言(Groovy,JRuby,Jython),则不能再执行热部署(至少在Jetty上)。

这可能是什么原因?

回答

2

我能想到的原因有两个:

  1. 如果只有你的脚本发生了变化,请问你的应用程序知道它必须重新加载脚本?它们作为正常资源处理。由于资源发生变化,容器不知道必须重新部署servlet。
  2. 另一种可能是您将ScriptEngine作为实例变量存储在servlet中。所以这个servlet不能被替换,因为这个依赖关系的实例对象不能被重建。
+0

聪明的回答。谢谢。 – 2009-06-14 19:11:34

0

您有没有评价JavaRebel?他们认为这种部署是他们的业务(在Tomcat下运行良好,必须在Jetty下工作)。