Tomcat和jboss 热部署调试Web应用,不重启Server

时间:2022-12-05 13:39:09
常用的web服务器一般为tomcat和jboss,现一一做介绍。

1.tomcat热部署

编辑Tomcat目录下conf目录中server.xml文件
第一步:找到<Host name="localhost" appBase="webapps"></Host>

第二步:在<Host></Host>之间加上这样一句话:
<Context path="/myapp" docBase="myapp" debug="99" reloadable="true" />
"myapp" 为要部署的应用程序,通常在webapps目录下,docBase则是你的项目所在的路径

比如你有一个项目在webapps下面,名为apps那就加上这样一句话就行了:

<Context path="/apps" docBase="apps" debug="99" reloadable="true" />

在这里debug可以不写,如果项目位于webapps下面的话,docBase也可以省略,但是path参数和reloadable="true"一定得写,像这样:
<Context path="/apps" reloadable="true" />
不然以后修改了java文件编译后还得重启tomcat

第三步:重启tomcat让修改生效
这样,以后再修改servlet后就不用重启tomcat了,只要重新编译java文件,tomcat会检测到并重新导入servlet,如果使用的是dos窗口启动tomcat,重新编译servlet后tomcat会出现以下提示:
org.apache.catalina.core.StandardContext reload
信息: Reloading this Context has started

解释和上面一样,这种方法在启动tomcat后,会在catalina_base/conf/catalina/localhost/中加入一个与第一种方法的文件。这样保证,只要对 server.xml不做修改,你可以随便对新生成的文件删除,对热部署没有任何问题。

例如:
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
<Context docBase="D:/work/work/WebContent" path="/app1"></Context>
</Host>

2.jboss热部署
在 jboss中做热部署也有两种方法,因为jobss集成了tomcat,也可以说这两种方法是在jobss上的一个修改。
a)修改jboss-4.0.4RC1/server/default/deploy/jbossweb-tomcat55.sar/context.xml
<Context cookies="true" crossContext="true" antiResourceLocking="true" antiJARLocking="true">
<Manager pathname=""/>
<InstanceListener>org.jboss.web.tomcat.security.RunAsListener</InstanceListener>
</Context>
加上红色的部分,重启jboss,再用myeclipse Redeploy project的时候就不需要重启,部署完了直接开浏览器预览啦