如何使Tomcat快速加载更改以快速进行Java Web开发

Asi*_*zad 7 java tomcat

我的应用程序使用Struts2 MVC,Spring JDBC模板与Eclipse IDE和Tomcat.每当我更改类代码时,我都必须重新启动Tomcat,每次浪费大约15-20秒.

我已经配置了热部署,即on-java-class-change,自动重新加载上下文,但它经常失败,我必须重新启动Tomcat.

我希望是:

  1. 当我对JSP进行更改时,它应该是自动加载的,而不是on-1st-request.

  2. 当更改和构建java类时,只应加载该类,而不重新启动Tomcat,即使整个上下文也不应重新启动或重新加载.

如果有人使用Jetty,请分享 - Jetty是否能为这些问题提供更好的解决方案.

在PHP中,您可以对脚本进行更改,并访问该页面,并准备就绪.我只是希望用Java.

Yuv*_*mar 3

我们在工作中使用嵌入式 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)

使用热插拔可以重新加载类,我不知道当热插拔不起作用时是否有现成的解决方案。