使用Tomcat和Eclipse开发Servlet时,我发现在更改Servlet的代码后我必须重新启动Tomcat,否则我将看不到任何已更改的内容。
为什么我必须这样做?
和
有没有办法在不重启Tomcat的情况下查看更改?
答案 0 :(得分:4)
您可以配置tomcat以自动重新加载您的servlet,将atribute reloadable配置为上下文的true。
对于do Tomcat 7,你必须这样做。
<Context>
有关:
<Context reloadable="true">
CATALINA_HOME是您的tomcat安装位置
答案 1 :(得分:1)
您正在编辑的java类被编译为类文件,当Tomcat启动您的应用程序时,这些文件由Tomcat类加载器加载。但是在Tomcat启动应用程序之后,类加载器不会尝试加载类的新版本。
Eclipse确实有一个称为“热代码替换”的简洁功能,但它只在您调试应用程序时才有效。在这种情况下,Eclipse会在您编辑时编译代码(无论是否进行调试),然后Eclipse会尝试加载它编译的新编辑的类。但它仅在调试应用程序时有效。
另一个选择是尝试像JRebel这样的JVM插件,无论你的调试是否调试,都可以热插拔你的类。