火星文 技术研习社

Noname Cat, Keep Thinking
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Tomcat 5.5 的热部署支持

Posted on 2006-05-19 18:55  剑廿三  阅读(2556)  评论(0编辑  收藏  举报
本来以为 Tomcat 是不支持热部署的。其实是支持的。

工作环境:

JDK 5,Eclipse 3.1.2,MyEclipse 4.1.1GA、Tomcat 5.5.16

假设工程名称是 Xnews,对应网站为 http://localhost:8080/Xnews

并假设 Tomcat 的安装目录为 %TomcatDir%

在 %TomcatDir%\conf\Catalina\localhost 目录下新建一个配置文件 Xnews.xml,内容如下:

<Context docBase="${catalina.home}/webapps/Xnews"
         privileged
="true" antiResourceLocking="true" antiJARLocking="true">

</Context>

重新启动 Tomcat,之后就可以在 MyEclipse 中使用 Redeploy 进行热部署了。

使用这种设置,每次重新启动 Tomcat 服务,会在 %TomcatDir%\temp 下新建一个项目副本

如 n-Xnews,其中 n 为从 0 开始的数字。

这种情况下使用 request.getRealPath() 方法得到的物理路径其实就是指向这个副本的物理路径而不是在 webapps 中的原始路径。

所以如果要使 request.getRealPath() 指向 webapps 原始路径,那么只能关闭这种热部署设定,即采用默认配置。