我的任务涉及将Java Web应用程序部署到在Debian Squeeze上运行的Tomcat 6.0.35实例。 因此,Tomcat从软件包源安装,Web应用程序从一个自定义的.deb软件包中进行部署,该软件包将.war文件放置在/opt下面的一个目录中,并通过删除一个上下文XML将其注册到Tomcat(我们称之为my-app.xml )到/etc/tomcat6/Catalina/localhost/ 。 这适用于最初的.deb安装,其中应用程序由Tomcat的自动部署机制提取并解压缩到/var/lib/tomcat6/webapps/ 。
当重新安装较新版本的.deb时,Tomcat不会更新应用程序。 它只会检测到一个变化,如果我手动执行一个
touch /etc/tomcat6/Catalina/localhost/my-app.xml
即使重新启动Tomcat而不接触my-app.xml也没有任何作用。
my-app.xml看起来像这样:
<Context path="/my-app" docBase="/opt/my-app/my-app.war"> <WatchedResource>/opt/my-app/my-app.war</WatchedResource> </Context>
恕我直言,这应该注意.war(当我安装更新的.deb时会发生变化)的变化。
在server.xml打开Autodeploy。
有任何想法吗?
将touch线放入deb文件的安装后脚本中