`
Mysun
  • 浏览: 270763 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Tomcat热部署

阅读更多
使用过tomcat的人都知道,为了在tomcat启动时能够加载你的Web工程,我们需要将Web工程打包成.war文件放到tomcat指定的目录下,也就是%CATALINA_HOME%/webapps目录。这样Tomcat在启动的时候就回去加载这个Web工程。这样做有两个不好的地方:
  1. 不能实现热部署。也就是当你修改了你的web工程中的某个类时,必须要重新打包才能反应出变化。即使你做了很小的一个修还也要重新打包部署你的web工程,这样做有时候是很耗费时间的。
  2. 没有办法定义你自己的Context。在Jboss里面我们可以在application.xml里面定义你的Web项目在访问时候的根目录,也就是Context。但是在tomcat里面,如果使用打包部署的方式是没有办法指定Context的。

为了解决上面的两个问题,我们可以再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。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics