<listener>
<listener-class>org.red5.server.war.WarLoaderServlet</listener-class>
</listener>
WAR方式启动tomcat时会加载red5 上下文
上下文
"default" and "web" 是red5 当中的两种上下文容器。red5实例中仅有一个default,多个web.
Default context
<context-param>
<param-name>parentContextKey</param-name>
<param-value>default.context</param-value>
</context-param>
<context-param>
<param-name>globalScope</param-name>
<param-value>default</param-value>
</context-param>
通过这两个参数WarLoaderServlet 将初始化default。
Web context
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/classes/*-web.xml</param-value>
</context-param>
每个上下文的配置要包括三个部分:context,scope, handler . 而对于Root 应用来说,它没有handler,它的handler来自系统的global handler.
Context 有一个唯一的名称,它是在web.context扩展来的,比如web.context.oflademo
<bean id="web.context" class="org.red5.server.Context">
<property name="scopeResolver" ref="red5.scopeResolver" />
<property name="clientRegistry" ref="global.clientRegistry" />
<property name="serviceInvoker" ref="global.serviceInvoker" />
<property name="mappingStrategy" ref="global.mappingStrategy" />
</bean>
Scope
对于每一个应用来说,至少有一个scope 连接着 handler,上下文和服务器实例
root scope 名称为web.scope
<bean id="web.scope" class="org.red5.server.WebScope" init-method="register">
<property name="server" ref="red5.server" />
<property name="parent" ref="global.scope" />
<property name="context" ref="web.context" />
<property name="handler" ref="global.handler" />
<property name="contextPath" value="/" />
<property name="virtualHosts" value="*" />
</bean>