Tomcat-4.部署

1. 简介

部署(Deployment):将Web应用(第三方的WRA文件,或者自己定制的Web应用)安装到Tomcat服务器上的过程。

在Tomcat服务器上,部署Web应用有多种方法:

  • 静态部署,在启动Tomcat之前安装Web 应用
  • 动态部署,使用Tomcat的Manager应用直接操纵已经部署好的Web应用(依赖于auto-deplyment特性)
Tomcat Manager

Tomcat Manager是一个能交互(通过HTML GUI)或者编程(通过基于URL的API)来部署并管理Web应用的Web应用。

通过Tomcat Manager实现应用的部署
  • Tomcat为Apache Ant构建工具提供了多个任务。
  • Apache Tomcat Maven Plugin工程提供了与Apache Maven的集成
  • 客户端配置器(Client Deployer,TCD),通过命令行来使用,提供一些额外功能,比如编译与验证Web应用,以及将Web应用打包成Web应用资源(WAR)文件

2.安装

  • 静态部署Web应用不需要安装,因为Tomcat已经提供了这项功能
  • 利用Tomcat Manager部署应用也不需要安装,但是需要配置,详见Tomcat Manager 手册
  • 使用客户端配置器部署需要安装

Tomcat核心发行版没有包含TCD,需要从下载区下载,通常名为:apache-tomcat-8.0.x-deployer,需要定义一个指向ANT安装根目录的ANT_HOME环境变量,需要一个指向Java安装目录的JAVA_HOME值, 需要在操作系统所提供的命令shell中运行ANT的ant命令,和Java的javacm命令。

3.上下文

  • 上下文(context):在Tomcat中就是Web应用的意思。
  • 上下文配置文件(Context Descriptor):为了在Tomcat中配置上下文,需要用到上下文配置文件(Context Descriptor)。
    • 上下文描述文件是一个xml文件。
    • 包含了Tomcat和上下文相关的配置文件,例如命令资源和会话管理配置信息
    • Tomcat的早期版本的描述文件通常保存在server.xml中,现在不再推荐(但是仍然有效)
    • Manage与TCD都需要用到上下文描述文件

上下文描述文件位于:

  1. $CATALINA_BASE/conf/[enginename]/[hostname]/[webappname].xml
  2. $CATALINA_BASE/webapps/[webappname]/META-INF/context.xml
    如果Web应用没有相应的上下文描述文件,Tomcat就会使用默认配置该应用。

4. 在启动Tomcat时部署

将Web应用静态的部署到Tomcat中,再启动Tomcat,这种情况下应用部署的位置有appBase目录决定,每台主机都指定了一个这样的位置。该位置可以放入war包或者展开的web应用。
appBase属性默认为$CATALINA_BASE/webapps,当主机的deployOnStartup属性为true,应用才会在Tomcat启动时进行自动部署。

Tomcat启动时部署,步骤如下:

  1. 部署上下文描述文件
  2. 部署没有被任何上下文描述文件引用过的展开的Web应用。如果appBase中已经存在与这个应用有关的.war文件,并且要比展开的应用文件更新,那么会将展开的的应用文件夹清除,从.war 文件中部署Web应用
  3. 部署.war文件

5.在运行中的Tomcat服务器上进行动态应用部署

如果主机的autoDeploy属性为true(默认属性),主机就会在必要时尝试动态部署并更新Web应用,包括一下行为:

  • 对放入主机appBase指定目录下的war文件进行部署
  • 对放入主机的展开的的web应用进行部署
  • 对于已通过war文件配置好的应用,如果又提供了更新的war文件,则使用新的war文件对该应用重新部署。在此情况下,会先移除原有的展开的web应用,然后对war文件进行展开的。如果在主机配置中,没有吧unpackWARs属性设置为fasle,则war文件不会被展开的,这是web应用被部署为一个压缩文件。
  • 如果/WEB_INFO/web.xml文件(或者其他任何被定义为WatchedResource的资源)更新,则重新加载web应用。
  • 如果用来部署web应用的上下文描述文件更新,则重新部署web应用
  • 如果web应用所使用的全局或者每台主机中的上下文描述文件已经更新,则重新部署与该应用有依赖关系的web应用
  • 如果一个上下文描述文件被添加到$CATALINA_BASE/conf/[enginename]/[hostname]/目录中,并且该描述文件带有与之前部署的web应用的上下文路径向对应的文件名,则重新部署该web应用
  • 如果某个web应用的文档库(docBase)被删除,则取消对该应用的部署。在Windows系统下,要向实现这样的行为,必须开启防死锁功能(参考Context配置文档)

可以在加载器中对web应用的重新加载进行配置,在这种情况下,会跟踪已经加载类所产生的更改。

6.使用Tomcat Manager进行部署

详述见Tomcat Manager。

7.使用客户端部署器进行部署

客户端部署器(TCD)的行为包括:

  • 验证并编译web应用
  • 将资源压缩成war文件
  • 将web应用部署到用于生产或开发环境的Tomcat服务器上

TCD需要用到Ant,包含了一个Ant脚本,包括一下目标:

  • compile(默认) 编译和验证应用。该部分功能可以独立使用,不需要运行中的tomcat。经过编译的应用也只能与相应版本的tomcat关联,不能保证在其他容器中也能使用。这个任务会自动编译在/WEB_INF/classes目录下的类
  • deploy 在Tomcat服务器上部署web应用(无论其是否编译过)
  • undeploy 取消对某个web应用的部署
  • start 开启web应用
  • reload 重新加载web应用
  • stop 停止web应用

另外需要在deployer.properties的文件中进行一下键值对的配置:

  • build:构建目录,默认是{path}其中{basedir}/build。compile目标执行完毕后,web应用的war文件将位于{path}.war
  • webapp:该目录包含后续将进行编译和验证的展开的web应用。默认为myapp
  • path:应用已部署的上下文路径,默认为/myapp
  • url:tomcat中管理器应用的绝对地址,用于部署和结束部署应用。默认部署器会尝试访问运行在localhost上的Tomcat实例,其URL为:http://localhost:8080/manager/text
  • username:Tomcat Manager的用户名(需要有读写manager-script的权限)
  • password:Tomcat Manager的密码

你可能感兴趣的:(Tomcat-4.部署)