• tomcat 搭建以及发布配置


    身为开发人员, 一直干着开发的事情, 只干开发的事情, 却缺少了对于环境部署方面的必备技能的培养, 所以在公司安排的手头任务解决完的情况下, 自己抽空了解并且实践了一下tomcat的配置。写下通过网络学习后的自我经验, 如果有同行看到了, 同时发现了不足或者说问题的, 还请多多指正, 谢谢。

    导引

    • 下载Apache tomcat 压缩包
    • 部署项目
    1. 直接部署
    2. 通过修改配置文件部署

    1.下载Apache tomcat 压缩包

    前往Apache tomcat 官网下载, 直接下载Core下面的就好了, 我是直接下载zip的.

    2.部署项目(不考虑tomcat端口被占用的情况)

    2a. 直接部署

    直接将打包好的war包放到webapps下面, 只要tomcat处于运行状态, 或在war包放置好之后, 再运行tomcat, 都会自动解压war包

    2b. 通过修改配置文件部署

    这个第二种方法, 提供的是可以将war放在非指定的webapps文件下面, 通过配置文件中指定的路径, tomcat会找到文件, 并解压到webapps目录下面

    配置文件为server.xml, 修改示例如下:

    <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
    
    		<!-- Tomcat Manager Context -->
    
    		<Context path="/xf-enuo" docBase="D:/xf-runProject/ROOT.war" debug="0" privileged="true"  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 "%r" %s %b" />
    
          </Host>
    

    两种方式各有好处, 通过第二种的话, 本地开发时, 只要在本地的tomcat配置文件server.xml中配置开发项目的打包文件的路径, 在修改好代码后, 重新打包, 然后再重启tomcat, 就可以了. 但是第二种存在的一个问题是, 将war删除了, 不会自动解压出来的在webapps目录下的文件夹, 也就是说, 删除了, 但是之前项目还是在跑的[我自己亲自试过了],另外就算是替换了war包, 它也不会为你重新解压然后覆盖掉webapps目录下面的文件夹.  如果指定文件不存在了的话, tomcat在启动时是不成功的, 必须保证指定的文件存在.  而相对的, 第一种方法, war必须放在webapps目录下面, 但是当删除一个war的时候, tomcat会自动的帮我们把它对应的解压出来的文件一起删除掉, 这样的话, 多个项目只需要更替当中一个的时候, 这种方法就起到好的效果了, 因为如果tomcat重启的话, war都是会重新解压的, 而如果我们使用第一种, 只要tomcat启动着, 我们删除一个war包, 它就会帮我们删除运行的项目, 再提交tomcat只会对重新提交的war进行解压, 对于多项目而言, 第一种帮我们分离了项目, 所以我还是比较喜欢用第一种, 当然第二种可能是我没有学到家, 后期再抽空实践一下吧.

  • 相关阅读:
    高可用
    网络线之坑:线序接错了,导致时常出现“未识别的网络”
    Cocos2d-x 坑之一:Xcode文件真实目录与工程视图目录
    【转】ios中@class和 #import 的使用时机
    virtualenv 模块
    pipreqs 组件
    5.15 pymysql 模块
    5.14 数据库函数,流程控制
    5.13 数据库存储过程
    5.12 数据库事务
  • 原文地址:https://www.cnblogs.com/Grace-is-enough/p/10007683.html
Copyright © 2020-2023  润新知