zoukankan      html  css  js  c++  java
  • 关于tomcat部署应用的三种方式

    关于tomcat部署应用虽然不是一个经常的操作,因为一旦选择了一种部署方式,我们其他的应用就会不经大脑的使用这种既定模式,

    如果不使用这种部署方式,但是对于其他的部署方式不是很清楚的话,很容易抓瞎,所以写这篇文章记录。

    第一种  : 直接将web应用丢在tomcat的webapp目录中   

    第二种  : 通过修改tomcat的server.xml文件,添加配置片段来配置项目  

    第三种  : 通过添加自定义的项目配置文件(xxxx.xml)

    第一种 : 直接将web应用丢在tomcat的webapp目录中

      这种方式最简单,一般情况我们的web应用开发都是在其他目录中进行的,如果想让他部署运行,直接将web应用复制在tomcat的webapp目录中,

      然后启动tamcat就行了。这种方式最简单,最粗暴,但是需要手动复制web应用,所以在正式项目中,我们不使用这种方式。

    第二种 :通过修改tomcat的server.xml文件,添加配置片段来配置项目  
      这种方式也就是我们现在正在使用的方式 ,使用这用方式我们应该在eclipse中将,tomcat的模式切换为server.xml模式   

      

      同时设置server.xml文件的目录位置。

      然后找到在server.xml文件中配置如下代码片段:

    1 <!--GX-S ccstudy  GX-S-->
    2       <Host appBase="webapps" autoDeploy="false" name="localhost" unpackWARs="false" xmlNamespaceAware="false" xmlValidation="false">
    <Context path="" docBase="D:workspaceccstudyweb" />
    4 <Alias>www.ccstudy.dev</Alias> 5 </Host> 6 <Host appBase="webapps" autoDeploy="false" name="file.ccstudy.dev" unpackWARs="false" xmlNamespaceAware="false" xmlValidation="false"> 7 <Context docBase="\192.168.20.2storeccstudy" path=""/> 8 </Host> 9 <!--GX-E ccstudy GX-E-->

    然后在这里去启动tomcat,在这里我们可以看到,我们通过server.xml文件方式配置的项目,我们可以选择要启动的项目,

    而这时,通过server.xml文件这种方式配置项目的一大缺点就显示出来了,就是每次我们启动tomcat,只能选择一个项目来启动。

    我们选择了启动哪个项目,在启动tomcat时就会把其他项目的配置代码片段注释掉。

    这种方式觉得还是适合于每次只启动一个项目,不适合启动多个项目。

    第三种方式  : 通过添加自定义的项目配置文件(xxxx.xml)

        这个方式,也是我在上一家公司所使用的项目启动方式。

        使用这种方式我们首先应该在eclipse中将tomcat的模式切换为Content files模式:

        

        然后设置我们项目配置文件的目录为 tomcat主目录下的conf/Catalina/localhost目录。

        然后在conf/Catalina/localhost目录中增加增加项目的配置文件 一般为项目名.xml文件 

        文件内配置如下:

    1   <Context path="/CKplayerDemo" docBase="D:workspaceCKplayerDemoWeb" />

        接着,我们应该在eclipse中的server的view中新建一个tomcat实例(如果以前没有),然后双击新建的tomcat实例,进行如下配置:

        

         主要是设置tomcat installation的server path和deploy path,至于是否勾选server options中的那两项,以及是否启用热部署插件JRebel,稍后再说。

         配置完这些之后 ,我们就可以右键启动这个tomcat实例了。

         上面是我们手动新建了配置文件放在了catalina/localhost目录下。我们还可以不用手动新建配置文件,直接部署应用。

         我们可以右键项目,选择run as的run on server选项,然后选择我们刚刚新建的tomcat实例。

         

        然后将要部署的项目添加到右边,点击完成。

        由于我们设置了tomcat的项目部署路径为webapps下,我们启动tomcat时,tomcat会将部署的项目拷贝到webapps下面,

        由于我们勾选了 publish module contexts to separate files选项,启动tomcat时会在catalina/localhost目录下新建一份配置文件。

        由于这个项目是我们手动部署的,我们可以在tomcat实例下面看到该项目,而通过手动新建配置文件的方式我们看不到部署的项目。

        

         启动tomcat实例,就可以访问部署好的项目了。

         所以总结一下第三种方式:

         切换tomcat的模式为Content files模式,新建tomcat实例,并对tomcat的实例进行配置,

         然后我们有两种选择:手动添加配置文件在catalina/localhost目录中,直接在项目上run on server上部署。

         手动添加配置文件的方式不能再tomcat实例下面看到部署的应用,不直观,但是无需tomcat进行web应用的复制。

         直接在项目上run on server上部署可以在tomcat实例下面看到部署的应用,当时tomcat需要将web应用复制到webapps下面,浪费性能。

      

        测试tomcat启动方式的时候,在切换第二种和第三种方式的时候出现了问题:

        当我们后server.xml方式切换到context files方式后,启动tomcat时,仍然会去读server.xml中的项目配置代码,但是我们明确指明使用context files方式,也就是

        catalina/localhost目录下的文件,tomcat会把server.xml中我们配置的已激活的项目的  <Context path="" docBase="D:workspaceccstudyweb" /> 给删除掉。。。。无语。。。

        当我们由context files方式切换为server.xml方式时,再启动激活的项目,发现怎么也没有加载这个项目。我们需要手动将删除掉的那行配置代码给加回去才行。

  • 相关阅读:
    命令拷屏之网络工具
    PHP 设计模式 笔记与总结(1)命名空间 与 类的自动载入
    Java实现 计蒜客 1251 仙岛求药
    Java实现 计蒜客 1251 仙岛求药
    Java实现 计蒜客 1251 仙岛求药
    Java实现 蓝桥杯 算法训练 字符串合并
    Java实现 蓝桥杯 算法训练 字符串合并
    Java实现 蓝桥杯 算法训练 字符串合并
    Java实现 LeetCode 143 重排链表
    Java实现 LeetCode 143 重排链表
  • 原文地址:https://www.cnblogs.com/wangliyue/p/5148504.html
Copyright © 2011-2022 走看看