首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >servlet如何对自身进行热重新部署?

servlet如何对自身进行热重新部署?
EN

Stack Overflow用户
提问于 2013-11-30 20:11:48
回答 2查看 369关注 0票数 5

是否有办法让Servlet热重新部署它是其中一部分的way应用程序?

我知道我可以将Tomcat配置为在更改web.xml时进行热重新部署,但我无法从java代码中找到同样的方法。我不想一直看web.xml的变化。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-30 20:46:41

我相信使用JMX是可以做到的。

代码语言:javascript
复制
The Tomcat Manager is a web application that can be used interactively (via HTML GUI) or programmatically (via URL-based API) to deploy and manage web applications.

有一个链接- http://tomcat.apache.org/tomcat-7.0-doc/deployer-howto.html

票数 0
EN

Stack Overflow用户

发布于 2013-11-30 20:39:43

Servlet具有依赖于容器的生命周期。这是在这里解释的,http://docs.oracle.com/javaee/5/tutorial/doc/bnafi.html

这意味着从web.xml中,容器根据请求确定匹配,如果存在这样的类,则将其作为类加载器资源加载。一旦发生这种情况,实例将一直加载,直到容器关闭为止,因此替换.class文件实际上不会达到“热部署”,除非您在tomcat的context.xml Attributes中设置了可重新加载的标志。

不管是Tomcat还是非Tomcat,一旦ClassLoader加载了资源,更改.class文件并不能完全改变您可能知道的运行中的.class的行为。因此,即使从文件系统中删除类文件,在普通情况下也不会影响运行中的java进程。

但是,servlet可能会启动一个后台任务,执行要“热部署”的新.class文件的基本文件副本(如果上下文属性'reloadable‘为true)。这将强制重新加载这些类,从而实现热部署。因此,尽管这超出了servlet设计实现的范围,但答案是肯定的。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20305108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档