可以修改类不用重启Tomcat加载整个项目(手工启动)
配置reloadable=true(自动重载)
使用Debug模式,前提是仅限于局部修改。(修改类不用重启--热加载)
Tomcat轻小,而WebLogic、WebSphere对硬件要求比较高,吃内存、耗CUP。JBoss类更改不会重启(传说,我没用过,不知道!)。
在使用Eclipse+Tomcat开发Java项目的时候常常会碰到这样的情况,已修改Java文件Tomcat就会自动重启,接下来就是漫长的等待服务重启完毕。那其实大多数的Java文件修改是没有必要重启服务的,只有一些特定的Java文件,比如说只有重启服务的时候才会调用的Java代码才需要重启服务。
一修改java代码就重新部署(console有明显提示),且会话失效,设置服务器为debug模式(debug on server),否则修改不起作用.
什么时候应该redeploy,什么时候应该重启tomcat。如果项目大,redeploy和重启tomcat的系统开销是很大的,经常要等很长时间。
Tomcat运行时动态重载类, 实现重载功能的测试jsp。当系统中有很多类时,如果开启了Tomcat的reloadable=true,那么每当相关文件改变时,Tomcat会停止 web app并释放内存,然后重新加载web app.这实在是个耗时的工程. 如果能有只重载某几个类的功能,将极大的满足我这个即时调试狂。
1.修改类不重启Tomcat(不用手动重启)
首先需要设置server.xml中的Context reloadable="true", true自动重载(不是重启!), false手动重载。(如果项目在Tomcat中,应该去Tomcat目录设置。)
Eclipse EE 设置方式,文件设置:server.xml > reloadable="false" 界面设置:Server > Modules > Edit > webapp > Auto reloading enabled > false
开发阶段通常都设为true,方便开发,在发布阶段应该设置为false,提高应用程序的访问速度。可以选择把其他不相关的项目先从webapps移出,这样tomcat加载的项目就少了,相应也就快了。
这里是重点:修改tomcat conf目录下的server.xml,添加:
Xml代码
<Context path="/struts2" docBase="D:\workspace\lee_struts2\WebRoot" reloadable="true"/>
注:docBase="",中的内容为项目的WebRoot目录
然后在把MyEclipse server中 tomcat 的开发模式设置debug模式,ok确定。
然后启动tomcat,随意修改项目中的一个文件,就会看到Console窗口重新加载项目,ok,搞定...
(问题:设置debug模式修改代码后会出现“hot code replace failed”错误,不用管,继续就ok,如果不想看见,让错误不提示就ok,原因是debug模式代码正在用,所以replase失败,但其实是成功的!而设置run模式就不报错,同时在修改代码后也是热部署的,刷新页面即可!)
2.修改类不重启Tomcat有两种方式:热部署、热加载
热部署:容器状态在运行时重新部署整个项目。这种情况下一般整个内存会清空,重新加载,这种方式可能会造成sessin丢失等情况。tomcat 6确实可以热部署了,而且会话也没丢.
热加载:最好是在调试过程中使用,免得整个项目加载,Debug模式支持热加载。容器状态在运行时重新加载改变编译后的类。在这种情况下内存不会清空,sessin不会丢失,但容易造成内存溢出,或者找不到方法。
一般改变类的结构和模型就会有异常,在已经有的变量和方法中改变是不会出问题的(Eclipse、MyEclipse8、JBuilder、 IntelliJ IDEA…)。
3.自动编译JSP
build Automatically
修改Tomcat源代码实现realoadable!不推荐~
分享到:
相关推荐
5. **实时修改代码**:当代码有改动时,保存修改,JRebel会在后台自动重新编译并加载新的类,无需手动重启Tomcat。 除了基本的热部署功能,JRebel 4.x还提供了其他一些实用特性,如资源文件的实时更新、Spring框架...
然而,当我们在MyEclipse中修改了类文件或JSP文件后,通常需要重启Tomcat服务器才能使更改生效,这无疑增加了开发过程中的等待时间。本文将详细介绍如何在MyEclipse中实现修改类及JSP文件后无需重启Tomcat即可实时...
标题“利用Tomcat远程部署解决修改类后重启Tomcat问题”揭示了主要关注点在于如何在不手动重启Tomcat服务器的情况下,实现应用的热更新或快速部署。这通常涉及到Tomcat的管理工具,特别是它的Manager应用程序,以及...
标题“编译class不用重启tomcat”涉及到的是Java开发中的热部署技术,它允许开发者在不重启应用服务器(如Tomcat)的情况下,实时更新代码并看到变化的效果,从而极大地提高了开发效率。这篇博客可能介绍了如何使用...
总的来说,通过合理配置IDEA的自动构建选项,以及Mybatis Plus的热加载设置,我们可以实现在修改Mapper XML文件后,无需重启Tomcat即可看到更新效果,大大提高开发效率。如果遇到XML文件未被自动检测到更新的情况,...
通常,开发者希望在不重启服务器的情况下更新代码,这时DevLoader可能会有热部署功能,即在代码更改后,能自动或手动重新加载修改过的类,而无需停止和重新启动Tomcat服务。这大大提高了开发效率。 类加载器在...
在MyEclipse中配置Tomcat进行动态加载,能够让开发者在不重启服务器的情况下实现应用的热更新,提高开发效率。下面将详细解释这一过程以及相关的技术知识点。 首先,理解"动态加载"的概念。动态加载是指在程序运行...
自动部署 热发布Spring Boot”涉及到的是在开发Spring Boot应用时,如何使用IntelliJ IDEA这款强大的Java集成开发环境(IDE)来实现在不重启Tomcat服务器的情况下,进行项目的自动部署和热更新。这种技术可以极大地...
标题 "清空Tomcat中的work目录并重启Tomcat.bat" 暗示这是一个批处理脚本,用于自动化清理Apache Tomcat服务器的`work`目录,然后重启服务。这个过程对于Java开发人员来说非常有用,因为它可以帮助他们清理临时编译...
### Tomcat6连接池配置详解(自动重连) #### 一、引言 在现代Web应用开发中,数据库连接管理是非常重要的一环。为了提高应用性能并确保资源的有效利用,通常采用连接池技术来管理数据库连接。Apache Tomcat作为一...
- **类加载器**:利用类加载器的特性,使得修改后的类文件可以在不重启整个应用的情况下被重新加载。 - **资源重载**:对于静态资源如HTML、CSS、JavaScript等,同样支持自动更新。 #### 三、具体配置步骤 假设...
"Spring+mvc+mybatis Mapper xml自动加载"这个主题聚焦于如何在开发过程中优化配置,使得改动Mapper XML文件后,无需重启Tomcat服务器,就可以立即生效,从而提高开发效率。 Spring MVC是Spring框架的一部分,它...
2. **Tomcat热加载原理**:传统的Java应用服务器在运行时,类加载到内存后,除非服务器重启,否则无法更改。Jrebel通过动态替换内存中的类文件来实现热加载,它监测源代码的变化,并将这些变化实时地推送到运行时...
它拦截了 JVM 的类加载过程,当检测到源代码发生变化时,会自动重新编译并加载新的类,而无需重启应用程序服务器。 **2. JRebel 与 Tomcat 集成步骤** (1) **安装 JRebel**: 首先,你需要从官方网站下载 JRebel 的...
### IDEA热部署详解:更新代码无需重启Tomcat #### 一、引言 在软件开发过程中,频繁地启动和停止应用服务器(如Tomcat)来查看代码修改效果不仅耗时,而且降低了开发效率。为此,许多IDE(集成开发环境)如...
这意味着开发者在修改Service类、Controller类或任何其他类后,可以直接测试这些改动,而不需要重启Tomcat这样的应用服务器。 在Windows 7环境下,DCE VM并不支持JDK 1.5(32位),但兼容JDK 1.6。如果项目依赖于...
请注意,热部署虽然提高了开发效率,但并不适用于所有情况,特别是涉及到复杂的类加载和线程问题时。因此,实际使用时需要根据项目需求和环境选择合适的热部署策略。 总之,通过以上介绍的Eclipse热部署方法,你...
"热部署"是开发者在开发过程中的一项重要功能,它允许开发者在不重启服务器的情况下更新应用代码,从而大大提高开发效率。本压缩包提供的“tomcat热部署+操作文档”旨在帮助用户实现这一功能。 首先,我们要理解...
- `reloadable`:是否允许热加载,即在不重启Tomcat的情况下更新应用。 - `docBase`:Web应用的基本目录,通常指向包含应用文件的实际目录。 #### 4. 将Web应用部署到Tomcat 有几种方式可以将Web应用部署到Tomcat...