zoukankan      html  css  js  c++  java
  • tomcat deploy部署项目三种方法

    1、将应用文件夹或war文件直接copy到tomcat的webapps目录下,这样tomcat启动的时候会将webapps目录下的文件夹或war文件的内容当成应用部署。这种方式最简单且无须书写任何配置文件。
    2、在tomcat的server.xml配置文件中的Host节点下增加Context子节点,如:

     
    <Context path="/test"docBase="D:private omcat est.war"/>
    //其中path制定访问url路径, docBase项目真是路径

    其中,path即context path;docBase指向应用所在的文件夹或war文件,可以是绝对路径,也可以是相对路径(相对该Context所在的Host的appBase属性值);
    3、在tomcat的conf/[Engine]/[Host]目录下新建xml文件,文件名为context path,内容如下:

     
    <Context docBase="D:private omcat est.war"
     privileged="true"antiResourceLocking="false"antiJARLocking="false">
     <!-- Link to the user database we will get roles from -->
     <ResourceLink name="users"global="UserDatabase"
     type="org.apache.catalina.UserDatabase"/>
    </Context>

    其中,docBase与第二种方式中的含义一样;

    当Host的autoDeploy属性值为true时,以上三种配置Context的方式中,只有第1、3两种方式配置署的应用不需要重启tomcat即可完成部署;第二种方式需要重启tomcat;另外,第1种方式不能指定特定的context path;

    修改Tomcat默认访问根目录

    Tomcat安装后,Tomcat的主目录是webapps/root目录。

    在conf文件夹下面找到server.xml 配置文件打开

    在<hosts>  ......</hosts>中间添加一行

    <Context path="" docBase="/usr/tomcat/apache-tomcat/webapps/xxx" debug="0" reloadable="true"/>
    ---------------------


    一个tomcat下部署不同端口多个应用

    打开server.xml.多加上

     <Service name="web">
        <Connector port="8088"   protocol="HTTP/1.1" maxThreads="700" acceptCount="100" connectionTimeout="2000" redirectPort="8445" URIEncoding="UTF-8"/>
     
        <Engine name="web" defaultHost="localhost">
            <Host name="localhost" appBase="webapp1">
              <Context docBase="/data/java/appstore-web" path="" reloadable="true" />
            </Host>
        </Engine>
      </Service>
      
      <Service name="web2">
        <Connector port="8089"   protocol="HTTP/1.1" maxThreads="700" acceptCount="100" connectionTimeout="2000" redirectPort="8445" URIEncoding="UTF-8"/>
        <Engine name="web2" defaultHost="localhost">
            <Host name="localhost" appBase="webapp2">
              <Context docBase="/data/java/appstore-web2" path="" reloadable="true" />
            </Host>
        </Engine>
      </Service>

    1)启动tomcat后,在tomcat配置目录:/usr/local/tomcat/conf下,除了默认的Catalina文件夹外,还会生成web1和web2两个文件夹。原因是Engine组件中,指定了所用的web1和web2。当然,我们可以将不同service组件的Engine name都指定成Catalina。

    2)启动tomcat后,在tomcat目录:/usr/local/tomcat下,除了默认的webapps文件夹外,还会生成webapp1和webapp2两个目录。原因是Host组件中,指定了appBase伟webapp1和webapp2.当然,我们可以将不同service组件的Host appBase指定成默认的webapps。

    2、配置说明:

    1)appBase是虚拟主机存放webapp的目录,它可以是相对路径,也可以是绝对路径。如果是相对路径,则相对于$CATALINA_HOME,严格并准确地说是CATALINA_BASE。

    2)path是URI的匹配路径,相当于nginx的location后的路径。tomcat要求每个虚拟主机必须配置一个空字符串的path,该条context作为URI无法被明确匹配时的默认context,它相当于nginx中location / {}的作用。

    3)docBase则是每个webapp的存放目录(或者是已归档的war文件),它可以是相对路径,也可以是绝对路径,提供相对路径时它相对于appBase。该目录一般在appBase的目录下,但并不规定一定要放在appBase下。对于web服务来说,它相当于nginx的root指令,但对于webapp来说,一个context就相当于一个webapp,而docBase正是webapp的路径。
    ---------------------  

    注意:

    1)如果多个项目都用了spring框架,那么在配置成一个tomcat多端口多应用时,可能会报错:

    13-Apr-2018 12:52:08.716 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener
    java.lang.IllegalStateException: Web app root system property already set to different value: 'webapp.root' = [/data/ttbrain-log-admin/] instead of [/data/Disu/] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!
    at org.springframework.web.util.WebUtils.setWebAppRootSystemProperty(WebUtils.java:151)
    at org.springframework.web.util.Log4jWebConfigurer.initLogging(Log4jWebConfigurer.java:116)
    at org.springframework.web.util.Log4jConfigListener.contextInitialized(Log4jConfigListener.java:45)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4727)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5189)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

    原因是:部署在同一容器中的Web项目,要配置不同的<param-value>,不能重复,否则就会报上面类似的错误。

    --------------------- 
     
    参考:https://blog.csdn.net/liuxiao723846/article/details/79940428 
     

  • 相关阅读:
    洛谷 P1508 Likecloud-吃、吃、吃
    Codevs 1158 尼克的任务
    2017.10.6 国庆清北 D6T2 同余方程组
    2017.10.6 国庆清北 D6T1 排序
    2017.10.3 国庆清北 D3T3 解迷游戏
    2017.10.3 国庆清北 D3T2 公交车
    2017.10.3 国庆清北 D3T1 括号序列
    2017.10.4 国庆清北 D4T1 财富
    2017.10.7 国庆清北 D7T2 第k大区间
    2017.10.7 国庆清北 D7T1 计数
  • 原文地址:https://www.cnblogs.com/youxin/p/5274858.html
Copyright © 2011-2022 走看看