身为开发人员, 一直干着开发的事情, 只干开发的事情, 却缺少了对于环境部署方面的必备技能的培养, 所以在公司安排的手头任务解决完的情况下, 自己抽空了解并且实践了一下tomcat的配置。写下通过网络学习后的自我经验, 如果有同行看到了, 同时发现了不足或者说问题的, 还请多多指正, 谢谢。
导引
- 下载Apache tomcat 压缩包
- 部署项目
- 直接部署
- 通过修改配置文件部署
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进行解压, 对于多项目而言, 第一种帮我们分离了项目, 所以我还是比较喜欢用第一种, 当然第二种可能是我没有学到家, 后期再抽空实践一下吧.