`
samjavaeye
  • 浏览: 193839 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用Jetty加快调试速度

    博客分类:
  • Java
阅读更多

为什么要用Jetty?

我们在开发过程中,经常遇到修改一个java类,哪怕只修改了一行代码,也要重启Tomcat才能看到修改结果的情况。这样也许修改代码只花了5秒钟,要看到结果却需要等50秒钟。有没有一种方法可以不用重应用启服务器,直接可以看到修改结果,就像修改Jsp一样呢?

答案是有——那就是使用Jetty。

之前也有同事写过使用Jetty的案例,不过那是以插件的方式去用,我个人比较偏好“轻量”开发,不喜欢弄一大堆插件在eclipse里面,因此这里给大家提供另一种选择——直接以application的方式来运行Jetty,只需要将相应的jar包加入到类路径中去就行了。

第一步,引入相应的jar包

将附件中的压缩文件,解压到任意目录,然后在eclipse里面新建一个“User Libraries”,将这些jar添加进去。

然后将这个libraries添加到我们正在开发的项目中去。

第二步,编写Jetty启动程序

程序很简单,只有一个main方法即可:

   

public static void main(String[] args) throws Exception {
        Server server = new Server();
        Connector connector = new SelectChannelConnector();
        connector.setPort(80); // 设置要监听的端口.
        server.addConnector(connector);
        WebAppContext context = new WebAppContext();
        context.setContextPath("/irm"); // 设置上下文路径
        // 设置web应用根路径
        context.setResourceBase("D:/java/workspace/EKP-IRM/WebContent");
        HandlerCollection handlerCollection = new HandlerCollection();
        handlerCollection.addHandler(context);
        server.setHandler(handlerCollection);
        server.start();
    }

 

 

第三步,开始调试

以debug方式运行第二步中编写的启动程序(注意一定要是debug方式,否则无法热加载改动过的Java类),打开浏览器,开始访问。

Jetty的局限性

只能热加载Java类,无法热加载资源文件、Struts配置文件、Spring配置文件等。

调试次数多了之后,容易出现热加载Java类失败的情况,此时不容易发觉,还以为自己改得不对。

分享到:
评论

相关推荐

    myeclipse中jetty和svn检出的插件

    在MyEclipse中,通过安装Jetty插件,可以直接在IDE内部启动和调试Jetty服务器,无需离开开发环境,这样可以大大加快开发和测试的迭代速度。Jetty插件通常会提供图形化的配置界面,使得设置端口、虚拟主机、上下文...

    Maven与Jetty

    总之,Maven和Jetty的集成为Java Web开发带来了很多便利,它简化了项目管理,加快了开发迭代速度,并提供了方便的调试和测试环境。通过合理配置Maven的POM文件和使用Jetty插件,开发者可以更专注于代码编写,而不必...

    ide搭建的gradle构建的springboot2源代码

    5. 并行构建:能并行处理任务,加快构建速度。 在IDEA中设置Spring Boot 2与Gradle的项目,通常需要以下步骤: 1. 创建新项目:选择"Spring Initializr",配置项目基本信息(如groupId、artifactId、版本等)。 2. ...

    eclipse开发帮助

    - **启动优化**:通过调整启动配置,如减少启动插件,可以加快Eclipse的启动速度。 以上只是Eclipse开发帮助中的一小部分,实际使用中还有许多其他特性,如插件市场、JDT(Java Development Tools)的代码提示和...

    多线程相关

    3. 文件处理:多线程读写大文件,加快处理速度。 4. 定时任务:如Quartz,利用线程池调度定时任务,避免资源浪费。 总之,多线程是现代软件开发中不可或缺的一部分,理解和熟练掌握多线程技术对于提升程序性能和...

    apache-cxf-3.2.4-src.tar.gz

    3. **快速开发**:通过插件,开发者可以直接在IDE内生成服务客户端和服务端代码,大大加快开发速度。 4. **部署灵活性**:CXF和Axis2都可以独立部署,也可以嵌入到Tomcat、Jetty等Servlet容器中,提供更高的灵活性。...

    eclipse 热部署插件

    通过热部署,开发者可以即时看到代码修改后的效果,无需等待漫长的服务器重启过程,从而加快了开发迭代的速度。 Eclipse中的热部署插件主要指的是JRebel,这是一款由Zeroturnaround公司开发的强大工具。JRebel与...

    material-theme-fw8:Vaadin Framework 8的材料设计主题

    使用运行时编译器时,以“运行”模式(而不是“调试”模式)运行应用程序可以大大加快连续主题的编译速度。 强烈建议禁用生产WAR文件的运行时编译。使用Vaadin预发行版如果默认情况下未启用Vaadin预发行版,请使用...

    基于SpringBoot+Vue的周边游平台个人管理模块源码数据库.doc

    - **UI组件库**: 如Element UI等,提供丰富的UI组件,加快开发速度。 ##### 3. MySQL数据库 MySQL是一款广泛使用的开源关系型数据库管理系统。在本项目中,MySQL主要负责数据的存储和管理,具体包括: - **表结构...

    java + html 编程技巧

    14. **部署与服务器配置**:了解Tomcat、Jetty等应用服务器的配置和部署,以及Nginx、Apache等反向代理服务器的使用,是实现Java Web应用上线的关键。 15. **持续集成/持续部署(CI/CD)**:利用Jenkins、Travis CI等...

    quic-protocol:Google对QUIC(HTTP3)协议的纯Java实现

    3. **0-RTT(零往返时间)连接建立**:QUIC可以在首次通信时就发送应用数据,减少了握手延迟,加快了页面加载速度。 4. **内置加密**:QUIC将加密和身份验证集成到协议中,使得连接更加安全,减少了中间人攻击的...

    Spring Boot快速搭建和部署应用程序

    - **提高效率**:加快开发速度,减少错误。 - **易于上手**:新手也能快速入门Spring Boot开发。 #### 三、自动化的依赖管理 - **Starter概念**:每个Starter包含一组相关的依赖和配置,开发者可通过引入Starter...

    myeclipse热启动

    这减少了频繁启动服务器的时间,特别是在进行调试和测试时,能够快速验证代码更改的效果,加快了开发迭代的速度。 【详细说明】 1. **热启动原理**:MyEclipse通过监控项目的源代码目录,一旦检测到代码有变动,就...

    java版图书管理系统

    - 使用Jenkins或GitLab CI/CD等工具,实现自动化构建和部署,加快开发迭代速度。 综上所述,Java版图书管理系统是集成了多种技术的复杂软件工程,涵盖了从需求分析、设计、编码、测试到运维的全过程。通过学习和...

    某宝买的价值29999块的java web项目源代码技术方案资料

    11. **持续集成/持续部署(CI/CD)**:如Jenkins、GitLab CI/CD,它们自动化构建、测试和部署流程,确保代码质量并加快迭代速度。 12. **版本控制系统**:如Git,用于代码版本管理和团队协作。熟悉分支管理、合并...

    图书管理系统(java+mssql).rar

    - **索引**:提高查询速度,如在图书标题字段上创建索引,加快查找特定书籍的速度。 - **存储过程**:预编译的SQL语句集合,可以提高性能并简化代码管理。 - **事务管理**:确保数据的一致性和完整性,如用户借阅...

    myeclipse for spring 8.6

    2. **利用模板加快开发速度**:熟练掌握MyEclipse提供的各种模板,可以大大提高开发效率。 3. **利用自动化测试确保代码质量**:充分利用MyEclipse集成的测试框架,编写单元测试和集成测试,确保代码质量。 4. **...

    GeoServer开发者手册

    在某些情况下,可能需要跳过测试直接构建项目,以加快构建速度或解决测试环境问题。 #### 5. Building Offline 当网络连接不稳定时,可以使用离线模式构建项目,避免因下载依赖失败而导致的构建中断。 #### 6. ...

    基于SpringBoot的网上订餐系统源码数据库.docx

    MySQL是一款广泛使用的开源关系型数据库管理系统,其特点是速度快、成本低且功能强大。在本项目中,MySQL主要负责存储用户的个人信息、订单信息以及菜单信息等数据。数据库设计时需考虑的关键因素包括: - **表结构...

    springboot系统.pdf

    - **热部署与自动重启**:Spring Boot 支持开发过程中的热部署,即在修改源代码后自动重新编译并重启应用,从而加快了开发速度。 - **自动配置报告**:Spring Boot 可以自动生成配置报告,帮助开发者了解当前应用...

Global site tag (gtag.js) - Google Analytics