[转]tomcat部署
转载博客原文地址: http://www.cnblogs.com/xing901022/p/4463896.html
阅读目录
前篇大概讲过了tomcat的发布和部署,以及测试。
本篇详细介绍下tomcat的部署相关的内容,本篇主要内容:
1 介绍下部署相关的内容,需要安装的文件以及上下文描述符
2 静态部署——在tomcat启动时部署
3 动态部署——在运行时自动部署
4 使用TCD完成部署,另外还可以对应用进行编译、校验、打包等功能。
其他内容参考:tomcat官方文档翻译
介绍
部署就是把web应用开发时的文件拷贝到tomcat容器中,并对其进行编译等操作,使用户可以访问到该应用。在tomcat中有多种部署方式:
1 静态部署:直接拷贝相应的web展开目录、或者war包。(展开目录的意思就是tomcat可以直接访问的应用目录,是未经过压缩的。相反的就是war包,是一种经过压缩的web应用文件)。
2 动态部署:通过tomcat管理器或者其他工具(如TCD,tomcat client deployer)执行部署。
如果是使用静态部署,或者使用tomcat管理器进行部署是不需要安装任何东西的。
但是如果要使用TCD进行部署,那么就需要预先安装JDK和Ant,因为TCD中内置的是Ant的任务构建脚本;然后再下载TCD的部署包。
另外,还需要了解一个概念——上下文,Context。在tomcat中,上下文就是一个web应用。在之前的tomcat版本中,上下文信息是配置在server.xml中的,现在仍然可以,但是官方并不推荐这种做法。
上下文路径主要在:
1 CATALINA_HOME/conf/容器名字/主机名字/应用名字.xml
2 CATALINA_HOME/webapps/应用名字/META-INF/context.xml
其中路径1中:容器名字(enginename)通常为Catalina、主机名字为localhost。相关内容可以查看server.xml中:
静态部署——在tomcat启动时部署
部署时,涉及到一个变量appBase。这个变量标识了一个目录,该目录存放着部署的web应用。
一般默认情况下,appBase为CATALINA_HOME/webapps,配置信息位于server.xml中。
其中常用的几个选项:
appBase指定了部署的目录;
autoDeploy设置是否自动部署(下小节动态部署中会介绍);
unpackWARs设置了部署的形式,如果为true,则会以展开的形式部署;如果为false,则会以war包的形式部署。
设置了以上的内容后(以上都是tomcat默认的配置,不需要做任何改动),当启动tomcat时,就会自动部署在appBase目录下的应用。
并会按照下面的顺序进行部署:
1 部署上下文描述符。
2 部署展开的应用。如果部署目录中存在相应的war包,则检查是否比当前的应用更新;如果更新,则删除当前的应用,并解压该war包,得到最新的应用。
3 部署war包。
动态部署——在tomcat运行时部署
动态部署需要一个配置参数,就是上面提到的 autoDeploy 为 true。
当设置了该属性后,tomcat会在其运行时支持如下的操作:
1 部署新拷贝到appBase下的war文件
2 部署拷贝到appBase下的展开的应用(未压缩的)
3 当提供一个更新的war包时,重新部署应用。会先删除当前存在的应用,再进行解压部署。
4 当/WEB-INF/web.xml被改写时,自动部署
5 当web应用的context.xml上下文描述符被更新时,自动部署
6 当CATALINA_HOME/conf下对应的应用的上下文描述符被更新时,自动部署
7 当对应的docBase文档被删除时,自动部署。
使用TCD客户端程序部署
TCD即tomcat客户端部署工具,它使用了Ant的构建脚本,因此需要具有一定Ant的知识。
使用过程如下:
首先,需要安装Ant以及JDK(这个就不说了,没它tomcat也跑步起来)。配置ANT_HOME和JAVA_HOME。
然后,下载TCD部署包。一般我们使用的时候下载的是上面的核心包,如果想要使用TCD则需要下载下面的部署包。
下载后在任意位置解压:
可以看到目录中包含一个build.xml,TCD的相关任务内容就配置在这里面。
下面看看这个构建脚本都包括什么任务:
1 编译:
编译和校验应用。这部分功能可以独立使用,并且不需要运行中的tomcat。经过编译的应用只能与相应版本的tomcat相关联,不能保证在其他版本的容器中也能使用,这是因为编译生成的代码与运行的组件有关系。需要注意的是,这个任务也会自动编译在/WEB-INF/classes目录下的类。
2 部署:在tomcat容器中部署应用
3 解除部署:解除应用的部署
4 开始:开始web应用
5 重新加载:重新加载web应用
6 停止:停止web应用
另外可以在deployer.properties中配置TCD相关的部署信息,并且按照键值对的形式配置。
主要包括以下的内容:
参考
[转]tomcat部署的更多相关文章
- Tomcat部署web项目,如何直接通过域名访问,不加项目名称
问题:下面的问题是互联网上问得比较多的,但是显然都是同一个问题. JavaWeb项目部署到tomcat服务之后设置不需要输入项目名称即可访问? Tomcat部署web项目,如何直接通过域名访问,不加项 ...
- Tomcat部署web应用程序
对Tomcat部署web应用的方式总结,常见的有以下四种: 1.[替换ROOT目录] 最简单的一种方法,webapps目录下面ROOT文件夹的文件为你的文件,然后输入localhost:8080/首页 ...
- 如何制定tomcat部署时自己定义的docBase路径
装了tomcat后发现tomcat安装在系统跟路径地下,每次部署的时候挺麻烦的,于是想指定一个自己定义的应用部署的路径: 以下是如何指定,相关文档请查看https://tomcat.apache.or ...
- Tomcat部署方式
tomcat中三种部署项目的方法 第一种方法:在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加: <Context path="/he ...
- Tomcat 部署
<CATALINA_HOME>/webapps: Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录. 1.war包部署: 将需要发布的web应用打成war文件, ( ...
- tomcat部署方法总结
可以参考之前的:http://www.cnblogs.com/youxin/archive/2013/01/18/2865814.html 在Tomcat中部署Java Web应用程序有两种方式:静态 ...
- 解决tomcat部署多个虚拟机时报IllegalStateException: Web app root system property already set to 的问题
解决tomcat部署多个虚拟机时报IllegalStateException: Web app root system property already set to 的问题 在web.xml中添加如 ...
- (转) Tomcat部署Web应用方法总结
原文:http://blog.csdn.net/yangxueyong/article/details/6130065 Tomcat部署Web应用方法总结 分类: Java web2011-01-11 ...
- Tomcat部署web应用的方式
对Tomcat部署web应用的方式总结,常见的有以下四种: 1.[使用控制台部署] 访问Http://localhost:8080,并通过Tomcat Manager登录,进入部署界面即可. 2.[利 ...
- Tomcat部署Web应用方法总结
转载:http://m.blog.csdn.net/blog/u012516903/15741727 Tomcat部署Web应用方法总结 在Tomcat中部署Java Web应用程序有两种方式:静态部 ...
随机推荐
- node-webkit学习之【无边框窗口用JS实现拖动改变大小等】
效果如下图 原生的如下图(原生的用在自己的app上面太丑了,并且还带边框,所以重写了左上角的三个功能键) 1.首先了解一下nw底下的package.json 文件 { "name" ...
- Linux--struct file结构体
struct file(file结构体): struct file结构体定义在include/linux/fs.h中定义.文件结构体代表一个打开的文件,系统中的每个打开的文件在内核空间都有一个关联的 ...
- Mac 搭建svn本地服务端
首先建立一个svn目录,位置可以随意,以桌面为例 $ mkdir ~/Desktop/svn 新建一个名为proj的目录作为一个repository $ cd ~/Desktop/svn $ mkdi ...
- POJ 3294 出现在至少K个字符串中的子串
在掌握POJ 2774(两个串求最长公共子串)以及对Height数组分组后,本题还是容易想出思路的. 首先用字符集外的不同字符连接所有串,这是为了防止两个后缀在比较时超过某个字符串的分界.二分子串的长 ...
- 初识Kafka----------Centos上单机部署、服务启动、JAVA客户端调用
作为Apach下一个优秀的开源消息队列框架,Kafka已经成为很多互联网厂商日志采集处理的第一选择.后面在实际应用场景中可能会应用到,因此就先了解了一下.经过两个晚上的努力,总算是能够基本使用. 操作 ...
- hadoop高可靠性HA集群
概述 简单hdfs高可用架构图 在hadoop2.x中通常由两个NameNode组成,一个处于active状态,另一个处于standby状态.Active NameNode对外提供服务,而Standb ...
- 略过 Mysql 5.7的密码策略
之前从mysql 5.6的时候,mysql 还没有密码策略这个东东,所以我们每个用户的密码都可以随心所欲地设置,什么123 ,abc 这些,甚至你搞个空格,那也是OK的. 而mysql.user 表里 ...
- Linux添加硬盘和挂载
1.使用fdisk -l 查看硬盘的详细信息 分析: 2.分区初始化 fdisk /dev/sdb 分析:各个参数的解析 1. 输入 m 显示所有命令列示. 2. ...
- JavaEE开发之SpringBoot整合MyBatis以及Thymeleaf模板引擎
上篇博客我们聊了<JavaEE开发之SpringBoot工程的创建.运行与配置>,从上篇博客的内容我们不难看出SpringBoot的便捷.本篇博客我们继续在上篇博客的基础上来看一下Spri ...
- Android 安卓实现页面相互跳转并相互传递参数
一.对于两个页面之间相互传值,跳转的时候我们使用 startActivityForResult(intent,0),而不是startActivity(intent) 这个方法 第一个页面中在触发跳转的 ...