Tomcat热部署的实现和他的缺点

zqyxiazai 2011-07-21 07:15:59
哪位大侠知道Tomcat如何实现热部署,并说说他的缺点吗?
...全文
20830 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenj1913 2011-12-23
  • 打赏
  • 举报
回复
tomcat 热部署可以方便开发 在conf文件夹下的server.xml中加上<Context docBase="u:\workspace\sys\WebContent" path="/sys2.8" reloadable="false">这个配置就可以的
  • 打赏
  • 举报
回复
热部署?
我也有个帖子没有得到答案呢。。
tomcat虚拟机配置
H_YaLi 2011-09-14
  • 打赏
  • 举报
回复
为什么要热部署?
peng_wu01 2011-09-14
  • 打赏
  • 举报
回复
其实有个外门邪道,可以走的,绝对的热部署,杠杆的!我就是不告诉你们!
haiber528 2011-09-03
  • 打赏
  • 举报
回复
最近在学习Mule,貌似这个可以使Tomcat实现热部署。
fireelf000 2011-08-01
  • 打赏
  • 举报
回复
不推荐热部署,热部署也是引起内存溢出的一大问题
a83800244 2011-07-29
  • 打赏
  • 举报
回复
在tomcat里的conf文件夹里的server.xml配一个指向(指向你的工程):
例如:
<Context path="/mgws" docBase="E:\yangchaodong\workspaces\mgws3\WebContent" reloadable="true" crossContext="true"/>

kai27ks 2011-07-23
  • 打赏
  • 举报
回复
好像学到了东西。我回头去试试。
朱超ZhuChao.Tech 2011-07-23
  • 打赏
  • 举报
回复
RT.
mark_ 2011-07-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bao110908 的回复:]

所谓的热部署是指修改了一个类文件,类加载器只是重新加载这一个类文件,而不是重新加载所有的东西。

Tomcat 根本就不支持这样做。
[/Quote]

可以看下JRebel, google下吧。
Isnotsuitable 2011-07-23
  • 打赏
  • 举报
回复
<constant name="struts.devMode" value="true" />
它的作用是你不用再重启tomcat
优点:在开发阶段提高效率
缺点:添加的内容多了有时候还是要重启tomcat
树成 2011-07-22
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 rainsilence 的回复:]

引用 8 楼 spiniper 的回复:

引用 7 楼 rainsilence 的回复:

引用 6 楼 spiniper 的回复:

热部署和开发者模式还是有区别的。tomcat本身不支持,但是似乎可通过加载其它插件让它支持,不过,我很难想象在一个生产系统中,热部署有什么价值,我觉得热部署也就是和开发模式。

热部署的价值:实现在不关闭服务器的情况下升级模块。


这点……
[/Quote]

你说这话我同意,我也是这么认为的,任何技术的出现都是因为某个需求的应用,但是需求往往是过于理想化了,为此诞生的技术未必就能很好的解决这个需求,就像热部署,他想实现不关闭就完成系统更新,但是实际操作却是相当困难,这个技术并没有达到预期的效果,他在性能方面的缺陷和稳定性上的缺陷,不适合运用在一个成熟的生产系统上。而这个为了这个需求的技术却歪打正着的给开发带来了便利,世界上很多需求与技术的关系不都是如此么?
而且,你用这样的话语来搪塞我,未免过于肤浅,要说服我还是需要更深入剖析一下,我且等待你的看法。
rainsilence 2011-07-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 spiniper 的回复:]

引用 7 楼 rainsilence 的回复:

引用 6 楼 spiniper 的回复:

热部署和开发者模式还是有区别的。tomcat本身不支持,但是似乎可通过加载其它插件让它支持,不过,我很难想象在一个生产系统中,热部署有什么价值,我觉得热部署也就是和开发模式。

热部署的价值:实现在不关闭服务器的情况下升级模块。


这点我当然知道,但是,你知道作为一个生产系统,是不可……
[/Quote]
需求产生了技术,而不是技术的发展产生需求。
kai27ks 2011-07-22
  • 打赏
  • 举报
回复
我知道的支持热部署的 JOBSS。 GLASSFISH V2版(V3不会用)
TOMCAT是查找到有修改的类文件重启动。但是对配置文件无效。。
shine333 2011-07-22
  • 打赏
  • 举报
回复
热部署还是有用的,甚至可以说很有用的。
shine333 2011-07-22
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 kai27ks 的回复:]

我知道的支持热部署的 JOBSS。 GLASSFISH V2版(V3不会用)
TOMCAT是查找到有修改的类文件重启动。但是对配置文件无效。。
[/Quote]
都可以,只要修改context的配置即可,默认监听web.xml(conf/context.xml)
 <WatchedResource>WEB-INF/web.xml</WatchedResource>
rainsilence 2011-07-22
  • 打赏
  • 举报
回复
你说来说去,就是技术上不好实现。但是,我可以很负责的跟你说,这个需求很强烈,这个市场很大。你做不到,不代表别人做不到。谁能做到,谁就能占到先机。就算你做不到,你的老板想做到,你还是要做到。另外,很多时候,不要用固定思维来想问题。我在3年前就实现了热部署。但是不是在服务器层面上的。
树成 2011-07-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 rainsilence 的回复:]

引用 6 楼 spiniper 的回复:

热部署和开发者模式还是有区别的。tomcat本身不支持,但是似乎可通过加载其它插件让它支持,不过,我很难想象在一个生产系统中,热部署有什么价值,我觉得热部署也就是和开发模式。

热部署的价值:实现在不关闭服务器的情况下升级模块。
[/Quote]

这点我当然知道,但是,你知道作为一个生产系统,是不可以随便升级的,任何的升级过程都需要有测试,有监控和试运行阶段,你说在这样一种情况,服务器可能不重启么?
而且热部署可能会带来的一个很严重后果,就是一个已经成熟的生产系统,因为一个2B程序员上传的一个不合格的模块,而导致整个系统瘫痪,这样的责任谁去承担,而且某些业务还正在进行中,在这期间损失的数据如何弥补回来?如果是冷部署,在运行状态下,不加载新模块,就可以有效避免这个问题。
当然,你可以说,我通过充分的测试,这些模块值得信任,但是我想说,没有经过真正实际业务的模块,不能说值得信任,就算它真的值得信任,那么我想说的是,如果不停止服务而热部署的话,在部署期间,服务器仍旧有大量业务流动,那么新旧模块的体会,就很可能导致数据不准确与业务丢失。
那么你可以想象,热部署在生产系统环境下,真的可行么?
rainsilence 2011-07-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 spiniper 的回复:]

热部署和开发者模式还是有区别的。tomcat本身不支持,但是似乎可通过加载其它插件让它支持,不过,我很难想象在一个生产系统中,热部署有什么价值,我觉得热部署也就是和开发模式。
[/Quote]
热部署的价值:实现在不关闭服务器的情况下升级模块。
树成 2011-07-21
  • 打赏
  • 举报
回复
热部署和开发者模式还是有区别的。tomcat本身不支持,但是似乎可通过加载其它插件让它支持,不过,我很难想象在一个生产系统中,热部署有什么价值,我觉得热部署也就是和开发模式。
加载更多回复(5)

81,118

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧