Tomcat热部署

使用过tomcat的人都知道,为了在tomcat启动时能够加载你的Web工程,我们需要将Web工程打包成.war文件放到tomcat指定的目录下,也就是%CATALINA_HOME%/webapps目录。这样Tomcat在启动的时候就回去加载这个Web工程。这样做有两个不好的地方:
[list=1]
[*]不能实现热部署。也就是当你修改了你的web工程中的某个类时,必须要重新打包才能反应出变化。即使你做了很小的一个修还也要重新打包部署你的web工程,这样做有时候是很耗费时间的。
[*]没有办法定义你自己的Context。在Jboss里面我们可以在application.xml里面定义你的Web项目在访问时候的根目录,也就是Context。但是在tomcat里面,如果使用打包部署的方式是没有办法指定Context的。
[/list]
为了解决上面的两个问题,我们可以再Tomcat的配置文件server.xml中(位于%CATALINA_HOME%/conf/server.xml),添加一个<Context/>标签。具体如下:

<Host name="localhost"
debug="DEBUG"
appBase="webapps"
unpackWARs="true"
autoDeploy="true"
xmlValidation="false"
xmlNamespaceAware="false">
<Context path="/myapp" docBase="c:/myapp"/>

.....

....
</Hose>

实现tomcat热部署需要修改context.xml,位于%CATALINA_HOME%/conf/context.xml。如下:

<Context antiJARLocking="true" antiResourceLocking="true">

<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>

<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
</Context>

注意放置<Context>标签的位置,在<Host>标签内部。
其中属性path指定了Context。按照以上的配置,你访问你的web工程的url应该是:http://localhost:8080/myapp/xxx.do这样的形式。http://localhost:8080/myapp是根路径。
doBase属性告诉tomcat到c:/myapp这个目录下去加载web工程。一般这个目录都是我们的开发目录,这样我们改动就可以直接反映出来,而不需要重新部署。
当然对代码做了修改需要重新编译,而且修改了任何配置文件最好是重新启动一下Tomcat。 :shock:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值