《Red5 用户参考手册》之九:Red5 核心技术第二章 将 Red5 部署到 Tomcat
官方最新《Red5 用户参考手册》全套下载地址
前言
本文档介绍了如何将 Red5 作为一个应用程序存档(WAR)部署到 Tomcat。标准的 Red5 的部署由一个独立的 Java 程序组成,这个 Java 程序嵌入了一个可以作为一个系统服务运行的 J2EE 容器(Jetty 或 Tomcat),而 WAR 版本的则运行在一个 J2EE 容器下。
部署
Tomcat 的 war deployer 会定期对 webapps 目录进行 war 扫描。如果发现了一个还没有被部署的 war,deployer 会将 war 文件展开到一个基于 war 的文件名的目录。比如一个名为 myapp.war 的 war 会被展开到一个名为 myapp 的目录,取决于你安装的 Tomcat 目录这个完整路径会类似于 C:\Tomcat- 6.0.14\webapps\myapp。
Red5 服务会被打包成一个名为 ROOT.war 的文件,这个文件名对于大多数 J2EE 应用服务有着特殊的内涵,通常是默认的或者根 web 上下文。根 web 上下文负责不包含路径成分的服务请求。带有路径成分的 url 类似于 http://www.example.com/myapp,根 web 应用 url 类似于 http://www.example.com/。一个额外的配置文件,上下文描述符,位于每个 web 上下文的 META-INF 目录下。不使用 HTTP 访问的应用不需要 web / servlet 上下文。根 war 文件包含了几乎一个独立的服务应有的所有文件,除了嵌入的服务类和选择配置文件。
上下文描述符
一个上下文 XML 描述符是一个 XML 数据片段,包含有一个有效的上下文元素,这个元素通常会在 Tomcat 服务的主配置文件里找到(conf/server.xml)。对于一个给定的主机,上下文描述符定位于 $CATALINA_HOME/conf/[enginename]/[hostname]/。请注意当此文件名不依赖于 webapp 名时,当 deployer 从包含在 war 离得 context.xml 文件里创建描述符时,它们的名字会与 web 应用程序的名字相匹配。
上下文描述符允许定义上下文的所有方面和配置参数,例如命名资源和会话管理器配置。应该注意的是定义在上下文元素中的 docBase 既可以指向 .WAR 又可以指向由 .WAR 展开创建的目录。
Red5 配置
Red5 的配置可以是 web.xml 中的几个上下文参数,一个上下文文件,一个 bean 的 ref 文件,也可以是一个 Spring 为每个应用的上下文文件。仅仅使用 AMF 与 Red5 进行沟通的 Web 应用不需要服务应用上下文里的配置项。根据 Web 应用类加载器的工作方式,由 Spring 管理的应用上下文只适用于包含在根 war 里的应用。此外,Red5 使用一个叫做域的上下文副本,域用作上下文、处理程序、服务核心实例和一些其他对象的容器。域类似于 FMS 中的程序模型。初始入口点或为 Red5 启动 servlet 的是 WarLoaderServlet,它像以下所示作为一个 servlet 监听器被定义在 web.xml。幸运的是这个 servlet 取代了一个标准的 Red5 服务里的独立的类。
C:\Program Files\Apache\Tomcat\webapps\ROOT.war C:\Program Files\Apache\Tomcat\webapps\echo.war C:\Program Files\Apache\Tomcat\webapps\SOSample.war