美文网首页
Tomcat-4.部署

Tomcat-4.部署

作者: 悠扬前奏 | 来源:发表于2019-05-17 22:00 被阅读0次

    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:构建目录,默认是{build}/webapp/{path}其中{build}的默认指向位置是{basedir}/build。compile目标执行完毕后,web应用的war文件将位于{build}/webapp/{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.部署

          本文链接:https://www.haomeiwen.com/subject/hwrwxftx.html