IntelliJ IDEA12 怎么java热部署署,每次修改java文件就得重启tomcat

Eclipse的Tomcat热部署,免重启的方法 - 三问飞絮 - ITeye技术网站
博客分类:
背景与目标:
最好使用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&
问题:很多项目引用的第三方包有统一的位置,并不直接放在工程下/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。
浏览 49458
浏览: 200552 次
来自: 厦门
另外一个方法实现eclipse tomcat 热部署:http ...
太有用了,我就是这个该死的错误,没注意啊。感谢。
写道一品哥,好巧啊,百度搜到滴,哈哈那个汗 ...当前位置: →
→ IDEATOMCATWEB开发SSH开发批改类不重启热部署热加载IDEA8
IDEATOMCATWEB开发SSH开发批改类不重启热部署热加载IDEA8
& 作者:佚名 & 来源: 互联网 & 热度:
&收藏到→_→:
摘要: IDEA TOMCAT WEB开发 SSH开发 修改类不重启 热部署 热加载 IDEA8 负责人:盘子杰 时
间:号 电话: ...
"IDEATOMCATWEB开发SSH开发批改类不重启热部署热加载IDEA8"::
idea tomcat
web开发 ssh开发 修改类不重启 热部署 热加载 idea8
负责人:盘子杰
间:2009年02月26号
网上很多人误解热部署和热加载的概念,所以造成乱配置的行为,这里提示一下.
热部署:就是容器状态在运行的情况下部署或者重新部署整个项目.在这种情况下一般整个内存会清空,重新加载.简单来说就是tomcat或者其他的web服务器会帮我们重新加载项目.这种方式可能会造成sessin丢失等情况.
热加载:就是容器状态在运行的情况下重新加载改变编译后的类.在这种情况下内存不会清空,sessin不会丢失,但容易造成内存溢出,或者找不到方法。因为内存无法转变成对像. 一般改变类的结构和模型就会有异常,在已经有的变量和方法中改变是不会出问题的。在中模式最好是在调试过程中使用,免得整个项目加载.
debug模式都支持热加载.很方便使用.
下边介绍一下idea调试web工程的配置.
1. 指定编译class目录.module -& settings -& modules -& 工程名称 -& paths -&user module comile output path -&output path 和 test output path 设置为 ..\ webapp\web-inf\classes
2. 设置webapp的目录相关配置module -& settings -& modules -& 工程名称 -& web -& java ee build settings -&web facet exploded directory在[create web facet exploded directory]打钩在下边文本域中输入webapp的目录在[exclude from module content]去掉钩千万要注意 不是你就后悔
3.设置启动参数,或者共享多个工程配置在run/debug configurations 中添加一个tomcat server.在server选项中[build on frame deactivation ] 编译工程.在debug模式下可以热加载class
4.在deployment 选项中指定发布的工程和工程虚拟目录
5.[share configuration] 共享多个工程在一个启动的tomcat中
idea9 + tomcat:
java ide ------intellij idea 使用基础篇
搜索此文相关文章:此文来自: 马开东博客
网址: 站长QQ
上一篇:没有了
IDEATOMCATWEB开发SSH开发批改类不重启热部署热加载IDEA8_Web前端相关文章
Web前端_总排行榜
Web前端_最新
Web前端_月排行榜
Web前端_周排行榜
Web前端_日排行榜
马开东博客专栏
企业软件/开发
硬件/嵌入开发
马开东博客专栏
应用服务器
软件工程/管理/测试
马开东博客专栏
Linux/Unix
马开东博客专栏
开发语言/框架
专题开发/技术/项目
马开东博客专栏
高性能开发
马开东博客专栏}

我要回帖

更多关于 java 热部署原理 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信