Tomcat部署

来源:互联网 发布:飞行器 知乎专栏 编辑:程序博客网 时间:2024/06/05 20:25

简介

部署就是将web应用程序安装到你的Tomcat服务器。
有两种方式可以进行tomcat部署:

  • 静态安装:就是在tomcat启动之前安装web应用程序
  • 动态安装:就是使用Tomcat Manager这个web应用程序来直接的管理已经部署好的web应用程序(依赖自动部署特性)或者远程操作。

Tomcat Manager就是一web应用程序,以HTML为用户操作接口,基于URLAPI编程,它可以进行部署和管理web应用程序。
依赖于这个web应用程序的Manager有好多种方式进行部署,Apache Tomcat提供了Apache Ant构建工具的入口.Apache Tomcat Maven插件提供和Apache Maven的整合.还有一个客户端部署工具,通过命令行来使用而且还提供了额外的功能,比如:编译、校验、打包 web应用程序。

安装

对于静态web应用程序部署,不需要安装。使用TomcatManager部署功能,也无需安装,一些配置的细节在 Tomcat Manager manual.里面.如果你用Tomcat客户端,你需要安装一下。
Tomcat客户端没有和Tomcat一起打包,必须单独下载,可以通过‘apache-tomcat-7.0.x-deployer’查找下载的位置。
安装Tomcat客户端之前,你应该安装好Apche Ant并且版本是1.6.2以上还有JAVA。添加环境变量ANT_HOME,值为Ant安装的根目录路径,还有JAVA_HOME,值为JAVA安装的目录路径.你可以通过使用Ant脚本和java编译脚本来测试,环境变量是否配置成功。

  1. 下载Tomcat客户端
  2. 安装位置无要求
  3. 请仔细阅读Tomcat Client Deployer

Contexts

一个Context可以理解为一个web应用程序。
为了配置Context,通常需要一个Context相关的配置文件,通常是XML格式。里面可以配置session管理或者命名资源.早期的Tomcat版本,Context配置的内容是放到server.xml文件中,新版本是不推荐的,但是如果你这么配置了,它仍然会起作用.
Context中的信息会告诉Tomcat如何配置上下文,而且像TomcatManager和Tomcat客户端也会根据配置上下文的信息来正确的指向他们的角色.
关于Context文件的位置:

  1. $CATALINA_BASE/conf/[enginename]/[hostname]/[webappname].xml
  2. $CATALINA_BASE/webapps/[webappname]/META-INF/context.xml
    注意1和2的配置文件的名称是不同的。如果webapp没有配置context,那Tomcat会使用默认的配置。

静态部署

如果你不喜欢使用Tomcat Manager或者TCD,你需要把web应用程序部署到Tomcat,然后启动Tomcat.对于这种类型的部署,部署web应用程序的位置被称作appBase,它由每个主机来指定.你既可以复制一个打开的web应用程序(即:未压缩的)到这个位置,也可以是一个War形式的文件.
通过主机的appBase属性指定web应用程序的部署的位置,在这个位置的web应用程序,在Tomcat启动的时候将会被部署,但是需要设置主机的deployOnStartup是true.
在Tomcat启动的时候,部署的顺序如下:

  1. 首先Context描述文件被部署
  2. 跟Context描述文件相关联的web应用程序被部署.注意:如果在appBase目下有一个与解压好的web应用程序关联的War文件,如果这个War文件更新了,tomcat启动和部署的时候,tomcat是不会发现的。这个解压的web应用程序不会被删除and不会被更新的jar文件内容覆盖。
  3. WAR文件将会被部署.

动态部署

Tomcat运行的时候也可以进行部署。
当把主机autoDeploy属性设置成“true”的时候,主机会根据需要动态的部署和更新web应用程序,例如把一个新的war包放到appBase下,那么主机需要启动后天运行程序,这个是默认的配置。
autoDeploy设置成“true”,运行的tomcat可以允许如下:

  • War包复制到Host的appBase目录下
  • 复制解压的web应用程序到Host的appBase目录下
  • web应用程序已经部署了从war中,这是需要部署新的war包.在这种情况下 解压开的web应用程序需要删除,然后这个新的war包会再次解压开.注意如果Host的unpackWARS属性设置成“false”,war包不会被解压,这种情况下web应用程序的压缩包只是被更新了。
  • 如果WEB-INF目录下的web.xml文件被更新了,这个web应用程序会重启。
  • 已经部署的Context Descriptor文件被更新了,web应用程序会重启。
  • 如果全局的Context Descriptor文件被更新了,web应用程序会重启。
  • 如果一个Context Descriptor文件放到了$CATALINA_BASE/conf/[enginename]/[hostname]/ 目录下,web应用程序会重启。
  • 如果删除文档类文件,web应用程序不会重启。注意在windows系统下,如果Context配置文件中设置了anti-locking,在运行的web应用程序中的资源是允许删除的。

    注意重启的web应用程序也可以在加载器中配置,这种情况下,可以跟踪加载类的变化。

用客户端软件部署应用程序

最后,可以使用tomcat客户端部署工具进行web应用程序的部署。它可以进行校验、编译、打包、部署web应用程序到生产环境或者tomcat服务上。需要注意的是它依赖于tomcat manager并且tomcat服务处于运行中。
你需要熟悉apache ant脚本。Apache Ant是一个脚本编译工具。对于Apache Ant模型的理解是需要的(安装列表、熟悉使用操作系统指令、配置环境变量)
TCD包括 Ant任务、JSP编译、上下文描述校验。校验只需要一个参数:web应用程序解压路径。
TCD通过解压开的web应用程序作为输入(查看下边的属性列表),
TCD提供了如下的指令:

  • compile(default):编译和校验web应用程序.这个指令可以不需要tomcat运行的情况下执行.编译过的web应用程序仅仅能够运行在相关联的Tomcat服务,肯定不会工作在其他的Tomcat服务中,Jasper生成的代码依赖于它的运行主件,需要注意的是,位于web应用程序下/WEB-INF/classess目录下的java源文件也会被自动编译。
  • deploy:部署web应用程序(编译过的或没有编译过的)到Tomcat服务器中。
  • undeploy:移除部署的web应用程序
  • start:启动web应用程序
  • reload:重新加载web应用程序
  • stop:停止web应用程序

    部署也可以进行配置,创建一个叫做deployer.properties的文件放到TCD安装的根目录。在这个文件里面,每个的格式为键-值得形式:
    同时,要为Tomcat Manager设置一个用户,否则TCD不能够验证Tomcat Manager并且部署会失败。按照Tomcat Manager页面这样做:

  • build:默认构建的目录为 build/webapp/{path} (build{basedir}/build)执行完编译之后,web应用程序的war包将被部署到build/webapp/{path}.war目录下.

  • webapp:这个目录里面存放的是被编译和校验后的展开的web应用程序.
  • path: 部署web应用程序上下文的路径默认是 /myapp
  • url:管理正在运行的web应用程序的URL全路径,默认可以用来部署和解部署web应用程序。你可通过http://localhost:8080/manager/text访问在本地运行的tomcat实例.
  • username:Tomcat管理的用户名
  • password:Tomcat管理的密码
原创粉丝点击