Tomcat 部署详解
2016-07-10 15:03
309 查看
原文地址: http://www.cnblogs.com/xing901022/p/4463896.html
部署就是把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中:
![](http://images.cnitblog.com/blog2015/449064/201504/281925204116362.jpg)
部署时,涉及到一个变量appBase。这个变量标识了一个目录,该目录存放着部署的web应用。
一般默认情况下,appBase为CATALINA_HOME/webapps,配置信息位于server.xml中。
![](http://images.cnitblog.com/blog2015/449064/201504/281928035838013.jpg)
其中常用的几个选项:
appBase指定了部署的目录;
autoDeploy设置是否自动部署(下小节动态部署中会介绍);
unpackWARs设置了部署的形式,如果为true,则会以展开的形式部署;如果为false,则会以war包的形式部署。
设置了以上的内容后(以上都是tomcat默认的配置,不需要做任何改动),当启动tomcat时,就会自动部署在appBase目录下的应用。
并会按照下面的顺序进行部署:
1 部署上下文描述符。
2 部署展开的应用。如果部署目录中存在相应的war包,则检查是否比当前的应用更新;如果更新,则删除当前的应用,并解压该war包,得到最新的应用。
3 部署war包。
动态部署需要一个配置参数,就是上面提到的 autoDeploy 为 true。
当设置了该属性后,tomcat会在其运行时支持如下的操作:
1 部署新拷贝到appBase下的war文件
2 部署拷贝到appBase下的展开的应用(未压缩的)
3 当提供一个更新的war包时,重新部署应用。会先删除当前存在的应用,再进行解压部署。
4 当/WEB-INF/web.xm
cf91
l被改写时,自动部署
5 当web应用的context.xml上下文描述符被更新时,自动部署
6 当CATALINA_HOME/conf下对应的应用的上下文描述符被更新时,自动部署
7 当对应的docBase文档被删除时,自动部署。
TCD即tomcat客户端部署工具,它使用了Ant的构建脚本,因此需要具有一定Ant的知识。
使用过程如下:
首先,需要安装Ant以及JDK(这个就不说了,没它tomcat也跑步起来)。配置ANT_HOME和JAVA_HOME。
然后,下载TCD部署包。一般我们使用的时候下载的是上面的核心包,如果想要使用TCD则需要下载下面的部署包。
![](http://images.cnitblog.com/blog2015/449064/201504/281939082716548.png)
下载后在任意位置解压:
![](http://images.cnitblog.com/blog2015/449064/201504/281940121465800.png)
可以看到目录中包含一个build.xml,TCD的相关任务内容就配置在这里面。
下面看看这个构建脚本都包括什么任务:
1 编译:
编译和校验应用。这部分功能可以独立使用,并且不需要运行中的tomcat。经过编译的应用只能与相应版本的tomcat相关联,不能保证在其他版本的容器中也能使用,这是因为编译生成的代码与运行的组件有关系。需要注意的是,这个任务也会自动编译在/WEB-INF/classes目录下的类。
![](http://images.cnitblog.com/blog2015/449064/201504/281942173022764.png)
2 部署:在tomcat容器中部署应用
3 解除部署:解除应用的部署
4 开始:开始web应用
5 重新加载:重新加载web应用
6 停止:停止web应用
![](http://images.cnitblog.com/blog2015/449064/201504/281943268339554.png)
另外可以在deployer.properties中配置TCD相关的部署信息,并且按照键值对的形式配置。
主要包括以下的内容:
1 build:构建目录,默认是build/webapp/buildwebapp{path}。在编译任务结束后,编译的结果将会保存为build/webapp/buildwebapp{path}.war
2 webapp:这个目录包含了将被编译和校验的展开应用。默认为myapp
3 path:应用的部署上下文路径,默认是/webapp
4 url:tomcat容器中管理器应用的绝对地址,改地址将会用于部署和解除部署应用。默认,部署会尝试进入默认的Locahost实例,即http://localhost:8080/manager
5 username:tomcat管理器的用户名
6 password:tomcat管理器的用户密码
需要注意的是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中:
![](http://images.cnitblog.com/blog2015/449064/201504/281925204116362.jpg)
静态部署——在tomcat启动时部署
部署时,涉及到一个变量appBase。这个变量标识了一个目录,该目录存放着部署的web应用。一般默认情况下,appBase为CATALINA_HOME/webapps,配置信息位于server.xml中。
![](http://images.cnitblog.com/blog2015/449064/201504/281928035838013.jpg)
其中常用的几个选项:
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.xm
cf91
l被改写时,自动部署
5 当web应用的context.xml上下文描述符被更新时,自动部署
6 当CATALINA_HOME/conf下对应的应用的上下文描述符被更新时,自动部署
7 当对应的docBase文档被删除时,自动部署。
使用TCD客户端程序部署
TCD即tomcat客户端部署工具,它使用了Ant的构建脚本,因此需要具有一定Ant的知识。使用过程如下:
首先,需要安装Ant以及JDK(这个就不说了,没它tomcat也跑步起来)。配置ANT_HOME和JAVA_HOME。
然后,下载TCD部署包。一般我们使用的时候下载的是上面的核心包,如果想要使用TCD则需要下载下面的部署包。
![](http://images.cnitblog.com/blog2015/449064/201504/281939082716548.png)
下载后在任意位置解压:
![](http://images.cnitblog.com/blog2015/449064/201504/281940121465800.png)
可以看到目录中包含一个build.xml,TCD的相关任务内容就配置在这里面。
下面看看这个构建脚本都包括什么任务:
1 编译:
编译和校验应用。这部分功能可以独立使用,并且不需要运行中的tomcat。经过编译的应用只能与相应版本的tomcat相关联,不能保证在其他版本的容器中也能使用,这是因为编译生成的代码与运行的组件有关系。需要注意的是,这个任务也会自动编译在/WEB-INF/classes目录下的类。
![](http://images.cnitblog.com/blog2015/449064/201504/281942173022764.png)
2 部署:在tomcat容器中部署应用
3 解除部署:解除应用的部署
4 开始:开始web应用
5 重新加载:重新加载web应用
6 停止:停止web应用
![](http://images.cnitblog.com/blog2015/449064/201504/281943268339554.png)
另外可以在deployer.properties中配置TCD相关的部署信息,并且按照键值对的形式配置。
主要包括以下的内容:
1 build:构建目录,默认是build/webapp/buildwebapp{path}。在编译任务结束后,编译的结果将会保存为build/webapp/buildwebapp{path}.war
2 webapp:这个目录包含了将被编译和校验的展开应用。默认为myapp
3 path:应用的部署上下文路径,默认是/webapp
4 url:tomcat容器中管理器应用的绝对地址,改地址将会用于部署和解除部署应用。默认,部署会尝试进入默认的Locahost实例,即http://localhost:8080/manager
5 username:tomcat管理器的用户名
6 password:tomcat管理器的用户密码
需要注意的是tomcat管理器的授权问题,如果不能正常使用管理器,该部署也会失败。
![](http://images.cnitblog.com/blog2015/449064/201504/281946143495945.png)
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- i-jetty环境搭配与编译
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 实现单Tomcat多Server配置
- 生产环境下的Tomcat配置
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- Linux部署Tomcat服务器
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器