背景与目标:
最好使用MyEclipse部署Web应用,在开发调试时,非常方式。资源文件修改可以自动的同步。修改Java文件,除非改变类的结构定义,也可以实现热部署的效果。
后来使用Eclipse JEE版本原生的方式(WTP)部署Web应用,在这一方面的便利性大大降低。原因是一旦修改Java类,虽说Tomcat也不需要人自动重启,但实际上,WebContext自动relead,实际还是相当于重启。
其实,不仅仅是修改Java类,只是放在Eclipse作为source folder的文件修改,都可触发tomcat的reload。
改善:
对此,一个改善的思路是:直接将tomcat的Context指向工程目录下的WebRoot/WebContent。这样,就免去了代码同步的问题。
方法:
1、修改tomcat的server.xml。
在Eclipse创建Server,实际已经新建了一组catalina的配置文件,即原tomcat中的conf目录。
2、手动添加项目引用。在Host结点下,添加Context节点。
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false"> <!-- docBase指向工程目录 path即Context名称 --> <Context docBase="E:/code/workspace/SCM/WebRoot" path="/SCM" reloadable="false"> </Context> </Host>
问题:很多项目引用的第三方包有统一的位置,并不直接放在工程下/WebContent/WEB-INF/lib下。在这种场景,将会导致ClassNotFoundException异常抛出。
再改善:
方法 一:
一些无关Classloader的类,主要是作为工具类引用的,可以放在tomcat的shared.loader下。这个可以通过设置catalina.properties目录来实现。
但是此方法改变原有的类加载设计,可能工程需要做一些特别的改变。不具有普遍适应性。故略。
方法 二:
利用Tomcat配置的VirtualWebappLoader机制,告诉tomcat去加载第三方的其他jar文件。配置方法同样在server.xml文件里。在前面加的Context下添加Loader。如下:
<Context docBase="E:/code/workspace/SCM/WebRoot" path="/SCM" reloadable="false"> <Loader className="org.apache.catalina.loader.VirtualWebappLoader" searchVirtualFirst="false" virtualClasspath="E:/code/workspace/SimpleLibs/libs/*.jar"></Loader> </Context>
注意:上面的配置适用于Tomcat 7.X。在Tomcat 6.0设置virtualClasspath时,需要列举出具体的jar,即不能使用*.jar。
题外话:可以自定义VirtualWebappLoader,但是在Eclipse方式启动tomcat的情况下,已测的tomcat6.0无效。直接在tomcat/bin/startup.bat下可自定义。初步推断原因是eclipse在catalina.base目录下生成一个org.eclipse.jst.server.tomcat.runtime.60.loader.jar。里面重写了WebappLoader。
相关推荐
这个过程涉及到了源码管理和自动化构建工具Maven,以及集成开发环境Eclipse中的服务器适配器Tomcat,它们共同助力实现项目的热部署,即代码修改后无需重启服务器即可看到更新效果。 首先,Maven是一个强大的项目...
幸运的是,有一种方法可以实现Eclipse的热部署,让开发者在保存代码后立即看到更新的效果,而无需重启服务。 首先,我们要理解热部署的概念。热部署是指在不中断应用程序运行的情况下,能够动态地替换或更新应用...
【 Maven 热部署在 Eclipse 和 Tomcat 中的实践】 Maven 是一个强大的构建工具,广泛用于Java项目管理,它负责构建、依赖管理和项目信息管理。在开发Web应用程序时,结合Eclipse集成开发环境(IDE)和Tomcat服务器...
### Maven + Tomcat + m2eclipse 的热部署详解 #### 概述 Maven、Tomcat 和 m2eclipse 是 Java 开发中常见的工具组合,它们分别在构建管理、应用服务器以及集成开发环境中扮演着关键角色。热部署(Hot Deploy),...
总之,Eclipse热部署插件是开发者的好帮手,它通过免编译和免重启的功能,帮助我们节省了大量宝贵的时间,使我们能够更加专注于代码的编写和项目的优化。如果你还没尝试过,强烈推荐安装并体验一下这种高效的工作...
总的来说,Tomcat的热部署配置可以极大地提高开发效率,减少因频繁重启带来的等待时间。JRebel作为一款优秀的热部署工具,能进一步简化这个过程,让开发者更加专注于代码的编写和调试。无论是手动配置还是借助工具,...
总的来说,Tomcat热部署技术是Java Web开发中的一个重要优化手段,它通过减少重复的部署和重启操作,提升了开发效率,让开发者可以更加专注于代码的质量和功能实现。同时,通过使用合适的工具和插件,可以进一步简化...
热部署和热启动是提高开发效率的重要特性,可以使开发人员在无需重启服务器的情况下更新和部署应用。 热部署是指在服务器运行状态下,重新部署整个Web应用,这时服务器会清空之前的内存,重新加载新部署的应用。热...
eclipse热部署配置详解 ...eclipse热部署配置可以提高开发和测试效率,减少重启服务器的次数。但是,需要正确地配置服务器和项目的部署方式,以确保热部署的成功。同时,热部署也需要服务器支持热部署机制。
【描述】:Tomcat热部署 Tomcat的热部署功能使得开发人员能够在开发过程中实时看到代码更改的效果,而无需重新启动服务器。这对于快速迭代的项目尤其重要,因为它节省了频繁重启服务器的时间。然而,Tomcat默认并不...
本压缩包提供的“tomcat热部署+操作文档”旨在帮助用户实现这一功能。 首先,我们要理解什么是Tomcat的热部署。热部署是指在应用程序运行时,能够动态替换或更新应用的类文件或资源文件,而无需停止或重启服务器。...
此外,插件还支持热部署,即在不重启服务器的情况下更新应用。 3. **启动与停止服务器**:用户可以在Eclipse内部启动、停止、重启Tomcat服务器,方便进行调试和测试。 4. **日志查看**:Eclipse的Console视图会...
本文将详细介绍如何利用 `jreloader` 在 Eclipse 集成开发环境中的 Tomcat 以及 Linux 上的 Tomcat 实现 Java 类文件的热部署。 #### 二、jreloader 简介 `jreloader` 是一款开源工具,它可以在运行时重新加载已经...
5. **热部署**:使用第三方插件如JRebel,可以在不重启服务器的情况下,实现类和资源的热替换,提升开发效率。 总之,Eclipse的Tomcat插件为开发者提供了一个集成化的环境,使得Tomcat服务器的管理和应用部署变得...
为了解决这一问题,"让独立部署的tomcat也支持热部署(不依赖Eclipse或MyEclipse)"的主题应运而生。这里我们将探讨如何借助JRebel插件实现这一目标,以及在配置过程中需要注意的细节。 JRebel 是一个强大的热部署...
Sysdeo Eclipse Tomcat提供了自动部署功能,只需将项目添加到插件管理的服务器实例中,就能自动将项目发布到Tomcat服务器,减少了手动复制文件的繁琐步骤。 4. **热更新** 开发者修改代码后,无需重启服务器,...
### Eclipse热部署详解 #### 一、什么是热部署 热部署(Hot Deployment)是指在不重启应用程序的情况下,更新代码并让这些更改立即生效的技术。在软件开发过程中,频繁的重启服务器不仅消耗时间,还可能打断开发...
5. **热部署**:当代码发生变化时,插件支持自动检测并重新部署应用,无需手动重启服务器,提升了开发效率。 为了充分利用这个插件,开发者需要确保Eclipse和Tomcat服务器的版本兼容,并正确配置插件以连接到本地或...