首页 > 代码库 > Tomcat Server 我目前正在印证和学习的
Tomcat Server 我目前正在印证和学习的
一般本人解决方法很简单:
热布署:修改任何java类都会重新部署,开发效率很慢
<Context docBase="mis" path="/mis" reloadable="false" source="org.eclipse.jst.jee.server:mis"/></Host>
评:就是双击 Server 后在 Modules 这个页签中,对 Auto Reload 变为 Disabled
“热部署”应该就是指context reloadable=true
所谓的热部署是指修改了一个类文件,类加载器只是重新加载这一个类文件,而不是重新加载所有的东西。
实现在不关闭服务器的情况下升级模块
这点我当然知道,但是,你知道作为一个生产系统,是不可以随便升级的,任何的升级过程都需要有测试,有监控和试运行阶段,你说在这样一种情况,服务器可能不重启么?
而且热部署可能会带来的一个很严重后果,就是一个已经成熟的生产系统,因为一个2B程序员上传的一个不合格的模块,而导致整个系统瘫痪,这样的责任谁去承担,而且某些业务还正在进行中,在这期间损失的数据如何弥补回来?如果是冷部署,在运行状态下,不加载新模块,就可以有效避免这个问题。
当然,你可以说,我通过充分的测试,这些模块值得信任,但是我想说,没有经过真正实际业务的模块,不能说值得信任,就算它真的值得信任,那么我想说的是,如果不停止服务而热部署的话,在部署期间,服务器仍旧有大量业务流动,那么新旧模块的体会,就很可能导致数据不准确与业务丢失。
那么你可以想象,热部署在生产系统环境下,真的可行么?
你说这话我同意,我也是这么认为的,任何技术的出现都是因为某个需求的应用,但是需求往往是过于理想化了,为此诞生的技术未必就能很好的解决这个需求,就像热部署,他想实现不关闭就完成系统更新,但是实际操作却是相当困难,这个技术并没有达到预期的效果,他在性能方面的缺陷和稳定性上的缺陷,不适合运用在一个成熟的生产系统上。而这个为了这个需求的技术却歪打正着的给开发带来了便利,世界上很多需求与技术的关系不都是如此么?
而且,你用这样的话语来搪塞我,未免过于肤浅,要说服我还是需要更深入剖析一下,我且等待你的看法。
它的作用是你不用再重启tomcat
优点:在开发阶段提高效率
缺点:添加的内容多了有时候还是要重启tomcat
不推荐热部署,热部署也是引起内存溢出的一大问题
tomcat 热部署可以方便开发 在conf文件夹下的server.xml中加上<Context docBase="u:\workspace\sys\WebContent" path="/sys2.8" reloadable="false">这个配置就可以的
========================================================================================
eclipse 服务器建好后,显示状态为 Stopped Republish 表示项目需要重新发布
右键->Publish 发布完成后,状态变以 Synchronized
这种方式不需要 tomcat 插件,修改jsp,js 等文件会自动部署。修改java 文件时,状态显示需要 restart
好处:可以看到服务器的状态和工程部署的状态,是已同步好,还是正在发布(需要重新发布 Republish),还是需要重启服务器
<Host name= "localhost " debug= "0 " appBase= "d:/myapp " unpackWARs= "true ">
<Context docBase= "example " path= "/demo " reloadable= "true ">
启动服务器后输入:http://localhost:8080/demo,tomat加载的是d:/myapp/example/index.jsp
如果path= " ",那么直接输入http://localhost:8080就可以了
docBase指向你WEB应用程序的目录,path指定WEB应用程序在Tomcat中的上下文环境(也即访问路径:http://localhost:8080/xxx),reloadable为true时,当你改变在WEB应用程序的类时,不需要你手工重新装载程序,Tomcat自动帮你重新装载
现在的Tomcat支持热部署了,不需要怎么设置,在Myeclipse 或者Eclipse里面配置好Tomcat来;
当你改了xml配置文件的时候,redeploy一下Tomcat 就可以了
而你修改了java代码来说 是不需要重启Tomcat的?,
只有当你修改了web 应用里面的xml配置文件,和当你增加了一些页面什么的就要redeploy 或者重启Tomcat
path 访问该Web应用的URL入口
docBase 文件路径,也可相对于<Host>的appBase 属性的相对路径
Web 应用彩开放目录结构,则指定Web应用的根目录
如果 Web 应用是个 war 文件,则指定 war 文件的路径
reloadable true 服务器在运行状态下会监视在 WEB-INF/classes 和 WEB-INF/lib 目录下 clas 文件的改动,如果监测到有 class 文件被更新的,服务器会自动重新加载 Web 应用。
在 Web 应用的发布阶段将 reloadable 设为 false (否则放一个文件将会重加载一下)