我的应用程序使用Struts2 MVC,Spring JDBC模板与Eclipse IDE和Tomcat.每当我更改类代码时,我都必须重新启动Tomcat,每次浪费大约15-20秒.
我已经配置了热部署,即on-java-class-change,自动重新加载上下文,但它经常失败,我必须重新启动Tomcat.
我希望是:
当我对JSP进行更改时,它应该是自动加载的,而不是on-1st-request.
当更改和构建java类时,只应加载该类,而不重新启动Tomcat,即使整个上下文也不应重新启动或重新加载.
如果有人使用Jetty,请分享 - Jetty是否能为这些问题提供更好的解决方案.
在PHP中,您可以对脚本进行更改,并访问该页面,并准备就绪.我只是希望用Java.
我们在工作中使用嵌入式 Jetty,这真是太棒了。有关嵌入 Jetty 的指南,请参阅http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty 。
Jetty 端的启动时间非常快(1-2 秒)。在我们的例子中,尽管 spring 仍然需要很多时间来初始化。
配置 Jetty 自动重新加载 jsps 很容易,只需将其指向一个目录而不是 war 文件,jsps 就会自动重新加载,如下所示:
public class OneWebAppUnassembled
{
public static void main(String[] args) throws Exception
{
Server server = new Server(8080);
WebAppContext context = new WebAppContext();
context.setDescriptor(webapp+"/WEB-INF/web.xml");
context.setResourceBase("../test-jetty-webapp/src/main/webapp");
context.setContextPath("/");
context.setParentLoaderPriority(true);
server.setHandler(context);
server.start();
server.join();
}
}
Run Code Online (Sandbox Code Playgroud)
使用热插拔可以重新加载类,我不知道当热插拔不起作用时是否有现成的解决方案。