背景与目标:
最好使用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。
相关推荐
NULL 博文链接:https://zheng12tian.iteye.com/blog/1772330
Maven +Tomcat+m2eclipse的热部署(hot deploy)
JRebel eclipse 热部署
eclipse 部署tomcat 服务时出现问题
用eclipse开发开发web程序时候,修改代码了,每次都得重启,很不方便,我在网上找了好久,发下这个可以用!分享下经验! 没有图片哦
利用maven创建Web项目,并在eclipse测试部署web项目
eclipse-tomcat 自动部署包
本文图文并茂,详细讲解了Eclipse配置tomcat及部署
eclipse jee 热部署配置图解 修改 jsp 和 java 文件 不用重启tomcat 热部署 三步搞定:
在eclipse中无插件,实现自动将项目部署在tomcat下的webapps文件夹下
可供与开发工具使用 很高效的节约了开发者在开发项目时等待工具编译.重启服务器的时间 内附安装教程 切记User不可为中文! 记得好用给予好评哦!
Eclipse中使用tomcat 热部署 Jrebel6.4.3 不需安装插件
eclipse热部署eclipse热部署eclipse热部署
eclipse Tomcat5.5 java.....
Eclipse tomcat 配置 Eclipse+tomcat的安装配置
Eclipse Tomcat插件 将解压后得文件夹复制到eclipse的plugins目录下,比如:D:\eclipse\plugins里面。然后重新启动eclipse,在eclipse工具栏中就会有三个Tomcat图标:启动、停止、重启
eclipse tomcat插件 eclipse tomcat 插件, eclipse4.6.3
Eclipse Tomcat Plugin最新插件,官方下载,解决在线安装报错问题, 支持以下版本Eclipse, 请分别将plugin和features内的jar包放入eclipse内相同文件夹内即可,记得重启eclipse!! Oxygen (4.7) Neon (4.6) Mars ...
主要介绍了Eclipse/ tomcat 如何实现热部署和热启动,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧