Using Tomcat 6.0.20 an error occurs in MapperListener and I cant find any new information on using Tomcat Embed. The problematic area in 6.0.20 is here: private void registerHost(ObjectName objectName) throws Exception { String name=objectName.getKeyProperty("host"); if( name != null ) {
Host host = (Host) ServerFactory.getServer().findService( domain).getContainer().findChild(name); String[] aliases = host.findAliases(); mapper.addHost(name, aliases, objectName); host.addContainerListener(this); if(log.isDebugEnabled()) log.debug(sm.getString ("mapperListener.registerHost", name, domain)); } } In 6.0.18 the same method is quite different: private void registerHost(ObjectName objectName) throws Exception { String name=objectName.getKeyProperty("host"); if( name != null ) { String[] aliases = (String[]) mBeanServer.invoke(objectName, "findAliases", null, null); mapper.addHost(name, aliases, objectName); if(log.isDebugEnabled()) log.debug(sm.getString ("mapperListener.registerHost", name, domain)); } } I didn't see any info about this in the release notes, nor on the tomcat site. Is there additional setup work that I need to do when using Tomcat within Red5? With 6.0.20 this exception occurs: 2009-06-03 21:26:17,119 [main] DEBUG o.apache.catalina.startup.Embedded - Adding connector (org.apache.catalina.connector.Connector/2.1) 2009-06-03 21:26:17,119 [main] DEBUG o.a.catalina.connector.Connector - Creating name for connector red5Engine:type=Connector,port=5080 2009-06-03 21:26:17,135 [main] INFO o.a.coyote.http11.Http11Protocol - Initializing Coyote HTTP/1.1 on http-5080 2009-06-03 21:26:17,151 [main] INFO o.a.coyote.http11.Http11Protocol - Starting Coyote HTTP/1.1 on http-5080 2009-06-03 21:26:17,166 [main] WARN o.a.c.connector.MapperListener - Error registering contexts java.lang.NullPointerException at org.apache.catalina.connector.MapperListener.registerHost(MapperListener.java:332) [catalina-6.0.20.jar:na] at org.apache.catalina.connector.MapperListener.init(MapperListener.java:129) [catalina-6.0.20.jar:na] at org.apache.catalina.connector.Connector.start(Connector.java:1146) [catalina-6.0.20.jar:na] at org.red5.server.tomcat.TomcatLoader.init(TomcatLoader.java:424) [red5.jar:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.6.0_10] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [na:1.6.0_10] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [na:1.6.0_10] at java.lang.reflect.Method.invoke(Method.java:597) [na:1.6.0_10] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1414) [spring-beans-2.5.6.jar:2.5.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1375) [spring-beans-2.5.6.jar:2.5.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335) [spring-beans-2.5.6.jar:2.5.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) [spring-beans-2.5.6.jar:2.5.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) [spring-beans-2.5.6.jar:2.5.6] at java.security.AccessController.doPrivileged(Native Method) [na:1.6.0_10] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) [spring-beans-2.5.6.jar:2.5.6] at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) [spring-beans-2.5.6.jar:2.5.6] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) [spring-beans-2.5.6.jar:2.5.6] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) [spring-beans-2.5.6.jar:2.5.6] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) [spring-beans-2.5.6.jar:2.5.6] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) [spring-beans-2.5.6.jar:2.5.6] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) [spring-beans-2.5.6.jar:2.5.6] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728) [spring-context-2.5.6.jar:2.5.6] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380) [spring-context-2.5.6.jar:2.5.6] at org.red5.server.Launcher.launch(Launcher.java:60) [red5.jar:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.6.0_10] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [na:1.6.0_10] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [na:1.6.0_10] at java.lang.reflect.Method.invoke(Method.java:597) [na:1.6.0_10] at org.red5.server.Bootstrap.bootStrap(Bootstrap.java:106) [boot.jar:na] at org.red5.server.Bootstrap.main(Bootstrap.java:50) [boot.jar:na] 2009-06-03 21:26:17,166 [main] DEBUG o.a.catalina.connector.Connector - register Mapper: red5Engine:type=Mapper,port=5080 *In 6.0.18 we have a working setup:* 2009-06-03 21:50:15,557 [main] DEBUG o.apache.catalina.startup.Embedded - Adding connector (org.apache.catalina.connector.Connector/2.1) 2009-06-03 21:50:15,572 [main] INFO org.red5.server.tomcat.TomcatLoader - Starting Tomcat servlet engine 2009-06-03 21:50:15,572 [main] INFO o.apache.catalina.startup.Embedded - Starting tomcat server 2009-06-03 21:50:15,572 [main] DEBUG o.apache.catalina.startup.Embedded - Setting naming prefix=org.apache.naming 2009-06-03 21:50:15,572 [main] DEBUG o.a.catalina.core.StandardEngine - Register red5Engine 2009-06-03 21:50:15,776 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet Engine: Apache Tomcat/6.0.18 2009-06-03 21:50:15,776 [main] DEBUG o.apache.catalina.core.StandardHost - Register host 0.0.0.0 with domain red5Engine 2009-06-03 21:50:15,776 [main] DEBUG o.apache.catalina.core.StandardHost - XML validation disabled 2009-06-03 21:50:15,807 [main] DEBUG o.a.catalina.startup.ContextConfig - ContextConfig: Initializing 2009-06-03 21:50:15,807 [main] DEBUG o.a.catalina.startup.ContextConfig - Processing context [/] configuration file C:\dev\red5\java\server\trunk\dist conf/context.xml 2009-06-03 21:50:15,854 [main] DEBUG o.a.catalina.startup.ContextConfig - Successfully processed context [/] configuration file C:\dev\red5\java\server\trunk\dist conf/context.xml 2009-06-03 21:50:15,854 [main] DEBUG o.a.catalina.startup.ContextConfig - Processing context [/] configuration file C:\dev\red5\java\server\trunk\dist\conf red5Engine/ 0.0.0.0/context.xml.default 2009-06-03 21:50:15,854 [main] DEBUG o.a.catalina.core.StandardContext - Starting / 2009-06-03 21:50:15,854 [main] DEBUG o.a.catalina.core.StandardContext - Registering j2eeType=WebModule,name=// 0.0.0.0/,J2EEApplication=none,J2EEServer=none for null 2009-06-03 21:50:15,854 [main] DEBUG o.a.catalina.core.StandardContext - Configuring default Resources 2009-06-03 21:50:15,979 [main] DEBUG o.a.catalina.core.StandardContext - Processing standard container startup 2009-06-03 21:50:16,010 [main] DEBUG o.apache.catalina.valves.ValveBase - valve parent=,path=/,host=0.0.0.0 red5Engine:j2eeType=WebModule,name=// 0.0.0.0/,J2EEApplication=none,J2EEServer=none 2009-06-03 21:50:16,010 [main] DEBUG o.apache.catalina.valves.ValveBase - valve objectname = red5Engine:type=Valve,name=StandardContextValve,path=/,host=0.0.0.0 2009-06-03 21:50:16,010 [main] DEBUG o.apache.catalina.startup.TldConfig - Accumulating TLD resource paths 2009-06-03 21:50:16,010 [main] TRACE o.apache.catalina.startup.TldConfig - Scanning <taglib> elements in web.xml 2009-06-03 21:50:16,010 [main] TRACE o.apache.catalina.startup.TldConfig - Scanning TLDs in /WEB-INF subdirectory 2009-06-03 21:50:16,026 [main] TRACE o.apache.catalina.startup.TldConfig - Scanning TLDs in /WEB-INF/red5-web.properties subdirectory 2009-06-03 21:50:16,026 [main] TRACE o.apache.catalina.startup.TldConfig - Scanning TLDs in /WEB-INF/red5-web.xml subdirectory 2009-06-03 21:50:16,026 [main] TRACE o.apache.catalina.startup.TldConfig - Scanning TLDs in /WEB-INF/web.xml subdirectory 2009-06-03 21:50:16,354 [main] DEBUG o.apache.catalina.startup.TldConfig - Adding tld listeners:0 2009-06-03 21:50:16,354 [main] DEBUG o.a.catalina.startup.ContextConfig - ContextConfig: Processing START 2009-06-03 21:50:16,354 [main] DEBUG o.a.catalina.startup.ContextConfig - Processing context [/] web configuration resource file://C:\dev\red5\java\server\trunk\dist\conf\web.xml 2009-06-03 21:50:16,354 [main] DEBUG o.a.catalina.core.StandardContext - Setting deployment descriptor public ID to 'null' 2009-06-03 21:50:16,369 [main] DEBUG o.a.catalina.core.ContainerBase - Add child StandardWrapper[default] StandardEngine[red5Engine].StandardHost[0.0.0.0].StandardContext[/] 2009-06-03 21:50:16,385 [main] DEBUG o.a.catalina.core.ContainerBase - Add child StandardWrapper[jsp] StandardEngine[red5Engine].StandardHost[0.0.0.0].StandardContext[/] 2009-06-03 21:50:16,463 [main] DEBUG o.a.catalina.startup.ContextConfig - Parsing application web.xml file at jndi:/0.0.0.0//WEB-INF/web.xml 2009-06-03 21:50:16,463 [main] DEBUG o.a.catalina.core.StandardContext - Setting deployment descriptor public ID to 'null' 2009-06-03 21:50:16,463 [main] DEBUG o.a.catalina.core.ContainerBase - Add child StandardWrapper[gateway] StandardEngine[red5Engine].StandardHost[0.0.0.0].StandardContext[/] 2009-06-03 21:50:16,463 [main] DEBUG o.a.catalina.core.ContainerBase - Add child StandardWrapper[rtmpt] StandardEngine[red5Engine].StandardHost[0.0.0.0].StandardContext[/] 2009-06-03 21:50:16,557 [main] DEBUG o.a.c.a.AuthenticatorBase - No SingleSignOn Valve is present 2009-06-03 21:50:16,557 [main] DEBUG o.apache.catalina.valves.ValveBase - valve parent=,path=/,host=0.0.0.0 red5Engine:j2eeType=WebModule,name=// 0.0.0.0/,J2EEApplication=none,J2EEServer=none 2009-06-03 21:50:16,557 [main] DEBUG o.apache.catalina.valves.ValveBase - valve objectname = red5Engine:type=Valve,name=NonLoginAuthenticator,path=/,host=0.0.0.0 2009-06-03 21:50:16,572 [main] DEBUG o.a.catalina.startup.ContextConfig - Configured an authenticator for method NONE 2009-06-03 21:50:16,572 [main] DEBUG o.a.catalina.startup.ContextConfig - Pipeline Configuration: 2009-06-03 21:50:16,572 [main] DEBUG o.a.catalina.startup.ContextConfig - org.apache.catalina.authenticator.NonLoginAuthenticator/1.0 2009-06-03 21:50:16,572 [main] DEBUG o.a.catalina.startup.ContextConfig - org.apache.catalina.core.StandardContextValve/1.0 2009-06-03 21:50:16,572 [main] DEBUG o.a.catalina.startup.ContextConfig - ====================== 2009-06-03 21:50:16,572 [main] DEBUG o.a.c.core.NamingContextListener - Bound StandardEngine[red5Engine].StandardHost[0.0.0.0].StandardContext[/] 2009-06-03 21:50:16,572 [main] DEBUG o.a.c.core.NamingContextListener - Creating JNDI naming context 2009-06-03 21:50:16,619 [main] DEBUG o.a.catalina.core.StandardContext - Configuring application event listeners 2009-06-03 21:50:16,619 [main] DEBUG o.a.c.c.C.[.[0.0.0.0].[/] - Sending application start events 2009-06-03 21:50:16,619 [main] DEBUG o.a.c.c.C.[.[0.0.0.0].[/] - Starting filters 2009-06-03 21:50:16,713 [main] DEBUG o.a.catalina.core.StandardContext - Starting completed 2009-06-03 21:50:16,713 [main] DEBUG o.a.catalina.core.StandardContext - Checking for red5Engine:j2eeType=WebModule,name=// 0.0.0.0/,J2EEApplication=none,J2EEServer=none 2009-06-03 21:50:16,713 [main] DEBUG o.a.catalina.startup.ContextConfig - ContextConfig: Initializing 2009-06-03 21:50:16,713 [main] DEBUG o.a.catalina.startup.ContextConfig - Processing context [/installer] configuration file C:\dev\red5\java\server\trunk\dist conf/context.xml 2009-06-03 21:50:16,729 [main] DEBUG o.a.catalina.startup.ContextConfig - Successfully processed context [/installer] configuration file C:\dev\red5\java\server\trunk\dist conf/context.xml 2009-06-03 21:50:16,729 [main] DEBUG o.a.catalina.startup.ContextConfig - Processing context [/installer] configuration file C:\dev\red5\java\server\trunk\dist\conf red5Engine/ 0.0.0.0/context.xml.default 2009-06-03 21:50:16,744 [main] DEBUG o.a.catalina.core.StandardContext - Starting /installer 2009-06-03 21:50:16,744 [main] DEBUG o.a.catalina.core.StandardContext - Registering j2eeType=WebModule,name=// 0.0.0.0/installer,J2EEApplication=none,J2EEServer=none for null 2009-06-03 21:50:16,744 [main] DEBUG o.a.catalina.core.StandardContext - Configuring default Resources 2009-06-03 21:50:16,744 [main] DEBUG o.a.catalina.core.StandardContext - Processing standard container startup 2009-06-03 21:50:16,744 [main] DEBUG o.apache.catalina.valves.ValveBase - valve parent=,path=/installer,host=0.0.0.0 red5Engine:j2eeType=WebModule,name=// 0.0.0.0/installer,J2EEApplication=none,J2EEServer=none 2009-06-03 21:50:16,744 [main] DEBUG o.apache.catalina.valves.ValveBase - valve objectname = red5Engine:type=Valve,name=StandardContextValve,path=/installer,host=0.0.0.0 2009-06-03 21:50:16,744 [main] DEBUG o.apache.catalina.startup.TldConfig - Accumulating TLD resource paths 2009-06-03 21:50:16,744 [main] TRACE o.apache.catalina.startup.TldConfig - Scanning <taglib> elements in web.xml 2009-06-03 21:50:16,744 [main] TRACE o.apache.catalina.startup.TldConfig - Scanning TLDs in /WEB-INF subdirectory 2009-06-03 21:50:16,744 [main] TRACE o.apache.catalina.startup.TldConfig - Scanning TLDs in /WEB-INF/red5-web.properties subdirectory 2009-06-03 21:50:16,744 [main] TRACE o.apache.catalina.startup.TldConfig - Scanning TLDs in /WEB-INF/red5-web.xml subdirectory 2009-06-03 21:50:16,744 [main] TRACE o.apache.catalina.startup.TldConfig - Scanning TLDs in /WEB-INF/web.xml subdirectory 2009-06-03 21:50:16,869 [main] DEBUG o.apache.catalina.startup.TldConfig - Adding tld listeners:0 2009-06-03 21:50:16,869 [main] DEBUG o.a.catalina.startup.ContextConfig - ContextConfig: Processing START 2009-06-03 21:50:16,869 [main] DEBUG o.a.catalina.startup.ContextConfig - Processing context [/installer] web configuration resource file://C:\dev\red5\java\server\trunk\dist\conf\web.xml 2009-06-03 21:50:16,885 [main] DEBUG o.a.catalina.core.StandardContext - Setting deployment descriptor public ID to 'null' 2009-06-03 21:50:16,885 [main] DEBUG o.a.catalina.core.ContainerBase - Add child StandardWrapper[default] StandardEngine[red5Engine].StandardHost[0.0.0.0].StandardContext[/installer] 2009-06-03 21:50:16,885 [main] DEBUG o.a.catalina.core.ContainerBase - Add child StandardWrapper[jsp] StandardEngine[red5Engine].StandardHost[0.0.0.0].StandardContext[/installer] 2009-06-03 21:50:16,916 [main] DEBUG o.a.catalina.startup.ContextConfig - Parsing application web.xml file at jndi:/0.0.0.0/installer/WEB-INF/web.xml 2009-06-03 21:50:16,916 [main] DEBUG o.a.catalina.core.StandardContext - Setting deployment descriptor public ID to 'null' 2009-06-03 21:50:16,932 [main] DEBUG o.a.c.a.AuthenticatorBase - No SingleSignOn Valve is present 2009-06-03 21:50:16,932 [main] DEBUG o.apache.catalina.valves.ValveBase - valve parent=,path=/installer,host=0.0.0.0 red5Engine:j2eeType=WebModule,name=// 0.0.0.0/installer,J2EEApplication=none,J2EEServer=none 2009-06-03 21:50:16,932 [main] DEBUG o.apache.catalina.valves.ValveBase - valve objectname = red5Engine:type=Valve,name=NonLoginAuthenticator,path=/installer,host=0.0.0.0 2009-06-03 21:50:16,932 [main] DEBUG o.a.catalina.startup.ContextConfig - Configured an authenticator for method NONE 2009-06-03 21:50:16,932 [main] DEBUG o.a.catalina.startup.ContextConfig - Pipeline Configuration: 2009-06-03 21:50:16,932 [main] DEBUG o.a.catalina.startup.ContextConfig - org.apache.catalina.authenticator.NonLoginAuthenticator/1.0 2009-06-03 21:50:16,932 [main] DEBUG o.a.catalina.startup.ContextConfig - org.apache.catalina.core.StandardContextValve/1.0 2009-06-03 21:50:16,932 [main] DEBUG o.a.catalina.startup.ContextConfig - ====================== 2009-06-03 21:50:16,932 [main] DEBUG o.a.c.core.NamingContextListener - Bound StandardEngine[red5Engine].StandardHost[0.0.0.0].StandardContext[/installer] 2009-06-03 21:50:16,932 [main] DEBUG o.a.c.core.NamingContextListener - Creating JNDI naming context 2009-06-03 21:50:16,932 [main] DEBUG o.a.catalina.core.StandardContext - Configuring application event listeners 2009-06-03 21:50:16,932 [main] DEBUG o.a.c.c.C.[.[0.0.0.0].[/installer] - Sending application start events 2009-06-03 21:50:16,932 [main] DEBUG o.a.c.c.C.[.[0.0.0.0].[/installer] - Starting filters 2009-06-03 21:50:16,932 [main] DEBUG o.a.catalina.core.StandardContext - Starting completed 2009-06-03 21:50:16,932 [main] DEBUG o.a.catalina.core.StandardContext - Checking for red5Engine:j2eeType=WebModule,name=// 0.0.0.0/installer,J2EEApplication=none,J2EEServer=none 2009-06-03 21:50:16,947 [main] DEBUG o.apache.catalina.valves.ValveBase - valve parent=,host=0.0.0.0 red5Engine:type=Host,host=0.0.0.0 2009-06-03 21:50:16,947 [main] DEBUG o.apache.catalina.valves.ValveBase - valve objectname = red5Engine:type=Valve,name=AccessLogValve,host=0.0.0.0 2009-06-03 21:50:16,963 [main] DEBUG o.apache.catalina.valves.ValveBase - valve parent=,host=0.0.0.0 red5Engine:type=Host,host=0.0.0.0 2009-06-03 21:50:16,963 [main] DEBUG o.apache.catalina.valves.ValveBase - valve objectname = red5Engine:type=Valve,name=ErrorReportValve,host=0.0.0.0 2009-06-03 21:50:16,963 [main] DEBUG o.apache.catalina.valves.ValveBase - valve parent=,host=0.0.0.0 red5Engine:type=Host,host=0.0.0.0 2009-06-03 21:50:16,963 [main] DEBUG o.apache.catalina.valves.ValveBase - valve objectname = red5Engine:type=Valve,name=StandardHostValve,host=0.0.0.0 2009-06-03 21:50:16,963 [main] DEBUG o.apache.catalina.valves.ValveBase - valve parent= red5Engine:type=Engine 2009-06-03 21:50:16,963 [main] DEBUG o.apache.catalina.valves.ValveBase - valve objectname = red5Engine:type=Valve,name=StandardEngineValve 2009-06-03 21:50:16,979 [main] DEBUG o.a.catalina.connector.Connector - Creating name for connector red5Engine:type=Connector,port=5080 2009-06-03 21:50:16,994 [main] INFO o.a.coyote.http11.Http11Protocol - Initializing Coyote HTTP/1.1 on http-5080 2009-06-03 21:50:17,010 [main] INFO o.a.coyote.http11.Http11Protocol - Starting Coyote HTTP/1.1 on http-5080 2009-06-03 21:50:17,010 [main] DEBUG o.a.c.connector.MapperListener - Register host 0.0.0.0 at domain red5Engine 2009-06-03 21:50:17,026 [main] DEBUG o.a.c.connector.MapperListener - Register Context /installer 2009-06-03 21:50:17,026 [main] DEBUG o.a.c.connector.MapperListener - Register Context 2009-06-03 21:50:17,026 [main] DEBUG o.a.c.connector.MapperListener - Register Wrapper jsp in Context 2009-06-03 21:50:17,026 [main] DEBUG o.a.c.connector.MapperListener - Register Wrapper default in Context 2009-06-03 21:50:17,026 [main] DEBUG o.a.c.connector.MapperListener - Register Wrapper default in Context /installer 2009-06-03 21:50:17,026 [main] DEBUG o.a.c.connector.MapperListener - Register Wrapper jsp in Context /installer 2009-06-03 21:50:17,026 [main] DEBUG o.a.c.connector.MapperListener - Register Wrapper rtmpt in Context 2009-06-03 21:50:17,026 [main] DEBUG o.a.c.connector.MapperListener - Register Wrapper gateway in Context 2009-06-03 21:50:17,026 [main] DEBUG o.a.catalina.connector.Connector - register Mapper: red5Engine:type=Mapper,port=5080 A direct link to the red5 class is here: http://red5.googlecode.com/svn/java/server/trunk/src/org/red5/server/tomcat/TomcatLoader.java Any info I can use to resolve this would be nice.. Paul -- http://gregoire.org/ http://osflash.org/red5