Modules/Module/Class paths

Hi,

I have a small and a lrg EC2 wowza instance using the VODS3 module and looking through the logs I am noting the same warning on both servers:

WARN server comment 2011-12-08 12:28:49 - - - - - 1816616.278 - - - - - - - - loadModFunctions[vods3/definst]: Module class not found or could not be loaded. Check [install-dir]/conf/vods3/Application.xml to be sure all Modules/Module/Class paths are correct: name:ModuleStreamNameAlias class:com.wowza.wms.plugin.streamnamealias.ModuleStreamNameAlias

So, I am presuming this is due to updated logic (I copied across my Wowza 2 app.xml) within the Application.xml? It is a recording application which transfers streams to the S3 bucket for playback. Any tips would be welcomed?

Cheers,

Simon

<?xml version="1.0"?>
<Root>
	<Application>
		<!-- Uncomment to set application level timeout values
		<ApplicationTimeout>60000</ApplicationTimeout>
		<PingTimeout>12000</PingTimeout>
		<ValidationFrequency>8000</ValidationFrequency>
		<MaximumPendingWriteBytes>0</MaximumPendingWriteBytes>
		<MaximumSetBufferTime>60000</MaximumSetBufferTime>
		<MaximumStorageDirDepth>25</MaximumStorageDirDepth>
		-->
		<Connections>
			<AutoAccept>true</AutoAccept>
			<AllowDomains/>
		</Connections>
		<!--
			StorageDir path variables
			
			${com.wowza.wms.AppHome} - Application home directory
			${com.wowza.wms.ConfigHome} - Configuration home directory
			${com.wowza.wms.context.VHost} - Virtual host name
			${com.wowza.wms.context.VHostConfigHome} - Virtual host config directory
			${com.wowza.wms.context.Application} - Application name
			${com.wowza.wms.context.ApplicationInstance} - Application instance name
			
		-->
		<Streams>
			<StreamType>default</StreamType>
			<StorageDir>${com.wowza.wms.context.VHostConfigHome}/content</StorageDir>
			<KeyDir>${com.wowza.wms.context.VHostConfigHome}/keys</KeyDir>
			<!-- LiveStreamPacketizers (separate with commas): cupertinostreamingpacketizer, smoothstreamingpacketizer, sanjosestreamingpacketizer, cupertinostreamingrepeater, smoothstreamingrepeater, sanjosestreamingrepeater -->
			<LiveStreamPacketizers/>
			<Properties>
				<Property>
					<Name>seekTarget</Name>
					<!-- valid values are: videoKeyFrame, audio, enhanced //DEFAULT = videoKeyFrame -->
					<Value>enhanced</Value>
				</Property>
			</Properties>
		</Streams>
		<Transcoder>
			<!-- To turn on transcoder set to: transcoder -->
			<LiveStreamTranscoder/>
			<!-- [templatename].xml or ${SourceStreamName}.xml -->
			<Templates>${SourceStreamName}.xml,transrate.xml</Templates>
			<ProfileDir>${com.wowza.wms.context.VHostConfigHome}/transcoder/profiles</ProfileDir>
			<TemplateDir>${com.wowza.wms.context.VHostConfigHome}/transcoder/templates</TemplateDir>
			<Properties>
			</Properties>
		</Transcoder>
		<DVR><!-- As a single server or as an origin, use dvrstreamingpacketizer in LiveStreamPacketizers above --><!-- Or, in an origin-edge configuration, edges use dvrstreamingrepeater in LiveStreamPacketizers above --><!-- As an origin, also add dvrchunkstreaming to HTTPStreamers below --><!-- To turn on DVR recording set Recorders to dvrrecorder.  This works with dvrstreamingpacketizer  --><Recorders/><!-- As a single server or as an origin, set the Store to dvrfilestorage--><!-- edges should have this empty --> --&gt;
			<Store/>
			<!--  Window Duration is length of live DVR window in seconds.  0 means the window is never trimmed. -->
			<WindowDuration>0</WindowDuration>
			<!-- Storage Directory is top level location where dvr is stored.  e.g. c:/temp/dvr -->
			<StorageDir>${com.wowza.wms.context.VHostConfigHome}/dvr</StorageDir>
			<!-- valid ArchiveStrategy values are append, version, delete -->
			<ArchiveStrategy>append</ArchiveStrategy>
			<!-- If this is a dvrstreamingrepeater, define ChunkOriginURL to point back to origin -->
			<!-- And define Application/Repeater/OriginURL to point back to the origin -->
			<Repeater><ChunkOriginURL/></Repeater>
			<!-- Properties for DVR -->
			<Properties>
			</Properties>
		</DVR>
		<!-- HTTPStreamers (separate with commas): cupertinostreaming, smoothstreaming, sanjosestreaming -->
		<HTTPStreamers>cupertinostreaming,smoothstreaming,sanjosestreaming</HTTPStreamers>
		<SharedObjects>
			<StorageDir/>
		</SharedObjects>
		<Client>
			<IdleFrequency>-1</IdleFrequency>
			<Access>
				<StreamReadAccess>*</StreamReadAccess>
				<StreamWriteAccess>*</StreamWriteAccess>
				<StreamAudioSampleAccess/>
				<StreamVideoSampleAccess/>
				<SharedObjectReadAccess>*</SharedObjectReadAccess>
				<SharedObjectWriteAccess>*</SharedObjectWriteAccess>
			</Access>
		</Client>
		<RTP>
			<!-- RTP/Authentication/[type]Methods defined in Authentication.xml. Default setup includes; none, basic, digest -->
			<Authentication>
				<PublishMethod>digest</PublishMethod>
				<PlayMethod>none</PlayMethod>
			</Authentication>
			<!-- RTP/AVSyncMethod. Valid values are: senderreport, systemclock, rtptimecode -->
			<AVSyncMethod>senderreport</AVSyncMethod>
			<MaxRTCPWaitTime>12000</MaxRTCPWaitTime>
			<IdleFrequency>75</IdleFrequency>
			<RTSPSessionTimeout>90000</RTSPSessionTimeout>
			<RTSPMaximumPendingWriteBytes>0</RTSPMaximumPendingWriteBytes>
			<RTSPBindIpAddress/>
			<RTSPConnectionIpAddress>0.0.0.0</RTSPConnectionIpAddress>
			<RTSPOriginIpAddress>127.0.0.1</RTSPOriginIpAddress>
			<IncomingDatagramPortRanges>*</IncomingDatagramPortRanges>
			<Properties>
			</Properties>
		</RTP>
		<MediaCaster>
			<Properties>
			</Properties>
		</MediaCaster>
		<MediaReader>
			<Properties>
				<Property>
					<Name>randomAccessReaderClass</Name>
					<Value>com.wowza.wms.plugin.amazonaws.ec2.mediacache.MediaCacheRandomAccessReaderAmazonEC2</Value>
				</Property>
				<Property>
					<Name>bufferSeekIO</Name>
					<Value>true</Value>
					<Type>Boolean</Type>
				</Property>
			</Properties>
		</MediaReader>
		<MediaWriter>
			<Properties>
			</Properties>
		</MediaWriter>
		<LiveStreamPacketizer>
			<Properties>
			</Properties>
		</LiveStreamPacketizer>
		<HTTPStreamer>
			<Properties>
			</Properties>
		</HTTPStreamer>
		<Repeater>
			<OriginURL/>
			<QueryString><![CDATA[]]></QueryString>
		</Repeater>
		<Modules>
			<Module>
				<Name>base</Name>
				<Description>Base</Description>
				<Class>com.wowza.wms.module.ModuleCore</Class>
			</Module>
			<Module>
				<Name>properties</Name>
				<Description>Properties</Description>
				<Class>com.wowza.wms.module.ModuleProperties</Class>
			</Module>
			<Module>
				<Name>logging</Name>
				<Description>Client Logging</Description>
				<Class>com.wowza.wms.module.ModuleClientLogging</Class>
			</Module>
			<Module>
				<Name>flvplayback</Name>
				<Description>FLVPlayback</Description>
				<Class>com.wowza.wms.module.ModuleFLVPlayback</Class>
			</Module>
			<Module>
				<Name>ModuleStreamNameAlias</Name>
				<Description>ModuleStreamNameAlias</Description>
				<Class>com.wowza.wms.plugin.streamnamealias.ModuleStreamNameAlias</Class>
			</Module>
			<Module>
				<Name>ModuleMediaWriterFileMover</Name>
				<Description>ModuleMediaWriterFileMover</Description>
				<Class>com.wowza.wms.module.ModuleMediaWriterFileMover</Class>
			</Module>
		</Modules>
		<Properties>
			<Property>
				<Name>aliasMapFileStream</Name>
				<Value>${com.wowza.wms.context.VHostConfigHome}/conf/aliasmap.stream.txt</Value>
			</Property>
			<Property>
				<Name>aliasMapFilePlay</Name>
				<Value>${com.wowza.wms.context.VHostConfigHome}/conf/aliasmap.play.txt</Value>
			</Property>
			<Property>
				<Name>aliasMapPathDelimiter</Name>
				<Value>/</Value>
			</Property>
			<Property>
				<Name>aliasMapNameDelimiter</Name>
				<Value>=</Value>
			</Property>
			<Property>
				<Name>aliasMapDebug</Name>
				<Value>true</Value>
				<Type>Boolean</Type>
			</Property>
			<Property>
				<Name>fileMoverDestinationPath</Name>
				<Value>/mnt/s3</Value>
			</Property>
			<Property>
				<Name>fileMoverDeleteOriginal</Name>
				<Value>true</Value>
				<Type>Boolean</Type>
			</Property>
			<Property>
				<Name>fileMoverVersionFile</Name>
				<Value>false</Value>
				<Type>Boolean</Type>
			</Property>
		</Properties>
	</Application>
</Root>

Right, you should not copy any configuration files from older versions of Wowza. I would start over, start a new instance, use the vods3 application that is included in default instance

Richard

Which AMI?

Richard

Use one of these:

https://www.wowza.com/docs/pre-built-amis-amazon-machine-images

Richard

It could mean that you have a typo in the /conf/[app-name]/Application.xml /Modules ModuleStreamNameAlias Module, or that the jar file from that StreamNameAlias package is not in the Wowza /lib folder, or that you have not restarted Wowza since adding the jar file.

Richard

Hi Richard,

I have just tested this with a brand new EC2 instance and found the exact same error occurs:

#Version: 1.0

#Start-Date: 2011-12-11 12:48:33 UTC

#Software: Wowza Media Server 3.0.3.02 build896

#Date: 2011-12-11

#Fields: x-severity x-category x-event date time c-client-id c-ip c-port cs-bytes sc-bytes x-duration x-sname x-stream-id x-spos sc-stream-bytes cs-stream-bytes x-file-size x-file-length x-ctx x-comment

WARN server comment 2011-12-11 13:15:18 - - - - - 1606.611 - - - - - - - - loadModFunctions[vods3/definst]: Module class not found or could not be loaded. Check [install-dir]/conf/vods3/Application.xml to be sure all Modules/Module/Class paths are correct: name:ModuleStreamNameAlias class:com.wowza.wms.plugin.streamnamealias.ModuleStreamNameAlias

This is a basic stream recording app.

Cheers,

Simon

ami-79f13f10

ami-7bf13f12

Could you at the very least explain what causes this error. “Module class not found or could not be loaded. Check [install-dir]/conf/streemio/Application.xml to be sure all Modules/Module/Class paths are correct: name:ModuleStreamNameAlias class:com.wowza.wms.plugin.streamnamealias.ModuleStreamNameAlias” … I just setup my wowza server on EC2. AMI code is AMI: ami-69162b1d