Tomcat项目部署(三)

1、部署:是将一个web应用(也可以是三方war包或者是用户自有web应用)安装至Tomcat服务器的过程。

2、部署方式:

  • 静态部署:tomcat服务器启动之前将web应用设置完成
  • 动态部署:直接操作已经部署的web应用或者使用tomcat自带manager应用管理页面远程操作

3、Context

  谈及部署web应用,首先必须理解Context的概念,对于tomcat,Context即是一个web应用。

  Context配置:

    • $CATALINA_BASE/conf/[enginname]/[hostname]/[webappname].xml
<?xml version='1.0' encoding='utf-8'?>
<Context path = "test" docBase = "/Users/ouhouki/dev_tools/apache-tomcat-7.0.77/conf/Catalina/localhost/ROOT" reloadable="false" />
    • $CATALINA_BASE/conf/webapps/[webappname]/META-INF/context.xml(如果应用内不含context.xml,则tomcat加载默认配置)
    • $CATALINA_BASE/conf/server.xml(Host标签下添加Context标签)
<Host name="localhost"  appBase="webapps"unpackWARs="true" autoDeploy="true">
    <!-- path 为应用访问路径,docBase为应用所在目录 -->
      <Context path = "/root" docBase = "/Users/ouhouki/dev_tools/apache-tomcat-7.0.77/conf/Catalina/ROOT" reloadable="true" />
       <!-- SingleSignOn valve, share authentication between web applications
            Documentation at: /docs/config/valve.html -->
       <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
       -->
       <!-- Access log processes all example.
            Documentation at: /docs/config/valve.html
            Note: The pattern used is equivalent to using pattern="common" -->
     <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
 </Host>

4、启动时部署(静态部署)

  tomcat启动前将web应用(或者war包)拷贝至Host标签属性[appBase]配置所在目录(默认配置$CATALINA_BASE/webapps目录),当且仅当Host属性[deployOnStartup]为true时完成启动部署

  tomcat启动时加载应用顺序:

    • 所有Context标签声明应用
    • 没有被Context标签关联声明的应用(已有关联war包的应用不会根据war包的更新而更新也不会被删除,而是保持初始) 
    • 所有war包应用   

5、启动中部署(动态部署)

  已启动的tomcat中同样可以部署应用,当Host标签属性[autoDeploy]为true时,虚拟机(host)会尝试动态部署更新web应用,即可完成如下操作:

    • 拷贝至[appBase]的war包动态部署
    • 拷贝至[appBase]的应用(exploded web)动态部署
    • 重新部署已有的  war包,原有应用(exploded web)被删除,重新解压新提供war包(Host标签属性[unpackWARs=true])  
    • 当/WEB-INF/web.xml(web.xml中任何[WatchedResource]标签中文件)文件被修改,重新加载web应用 
    • 已部署应用Context配置被修改,那么该web应用将重新部署
    • 依赖全局Context配置或者Host标签中Context配置修改,则对应应用重新部署
    • 当前新的Context配置被添加至$CATALINA_BASE/conf/[enginname]/[hostname]/目录,重新部署应用
    • 当一个web应用的[docBase]被删除时,解除部署

6、通过管理页面部署:略   

 

posted @ 2021-02-09 23:41  德克济克Dekjike  阅读(52)  评论(0编辑  收藏  举报