Error with ServerListenerStreamPublisher on 2.2.4

I wanted to try the latest module collection (4.0 I believe: https://www.wowza.com/docs/utility-modules-for-wowza-streaming-engine-media-server-software) but I get a weird error when I startup the server after configuring it.

These are the lines I added on the Server.xml on a test machine with a clean install:

			<ServerListener>
				<BaseClass>com.wowza.wms.plugin.collection.serverlistener.ServerListenerStreamPublisher</BaseClass>
			</ServerListener>

And this is what I see when I start up the server with startup.sh

Configure logging: file:///usr/local/WowzaMediaServer/conf/log4j.properties
INFO server server-start Wowza Media Server 2 Perpetual 2.2.4.07 build27628 -
INFO server comment - Serial number: XXXXX-XXXXX-XXXXX-XXXXX------
INFO server comment - Maximum connections: Unlimited
INFO server comment - Hardware Available Processors: 2
INFO server comment - Hardware Physical Memory: 1208MB/2001MB
INFO server comment - Hardware Swap Space: 510MB/510MB
INFO server comment - Max File Descriptor Count: 20000
INFO server comment - Open File Descriptor Count: 40
INFO server comment - OS Name: Linux
INFO server comment - OS Version: 3.13.0-24-generic
INFO server comment - OS Architecture: amd64
INFO server comment - Java Name: Java HotSpot(TM) 64-Bit Server VM
INFO server comment - Java Vendor: Oracle Corporation
INFO server comment - Java Version: 1.7.0_65
INFO server comment - Java VM Version: 24.65-b04
INFO server comment - Java Spec Version: 1.7
INFO server comment - Java Home: /usr/lib/jvm/java-7-oracle/jre
INFO server comment - Java Max Heap Size: 1067MB
INFO server comment - Java Architecture: 64
INFO server comment - Java Encoding[file.encoding]: UTF-8
INFO server comment - Java Args[0]: -Xmx1200M
INFO server comment - Java Args[1]: -Djava.net.preferIPv4Stack=true
INFO server comment - Java Args[2]: -Dcom.sun.management.jmxremote=true
INFO server comment - Java Args[3]: -Dcom.wowza.wms.AppHome=/usr/local/WowzaMediaServer
INFO server comment - Java Args[4]: -Dcom.wowza.wms.ConfigURL=
INFO server comment - Java Args[5]: -Dcom.wowza.wms.ConfigHome=/usr/local/WowzaMediaServer
INFO server comment - Java GC[0]: PS Scavenge
INFO server comment - Java GC[1]: PS MarkSweep
INFO server comment - Server threads[h/t]: 10/10
INFO server comment - CMDInterface now listening: [any]:8083
INFO vhost vhost-start _defaultVHost_ -
INFO server comment - _defaultVHost_ threads[h/t]:120/80 home:/usr/local/WowzaMediaServer
INFO vhost comment _defaultVHost_ Bind attempt ([any]:1935:4)
INFO vhost comment _defaultVHost_ Bind successful ([any]:1935)
INFO vhost comment _defaultVHost_ Bind attempt ([any]:8086:1)
INFO vhost comment _defaultVHost_ Bind successful ([any]:8086)
INFO server comment - ServerListenerStreamPublisher Started.
Error starting: java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at com.wowza.wms.bootstrap.Bootstrap.startServer(Unknown Source)
	at com.wowza.wms.bootstrap.Bootstrap.main(Unknown Source)
Caused by: java.lang.NoSuchMethodError: com.wowza.util.StringUtils.isEmpty(Ljava/lang/String;)Z
	at com.wowza.wms.plugin.collection.serverlistener.ServerListenerStreamPublisher.onServerInit(ServerListenerStreamPublisher.java:198)
	at com.wowza.wms.server.Server.notifyServerInit(Unknown Source)
	at com.wowza.wms.server.Server.start(Unknown Source)
	... 6 more

Any idea why this is happening? Besides the “why don’t you upgrade?” I mean :wink:

Hi,

The StreamPublisher uses Wowza methods that weren’t available when 2.2.4 was current. If you can’t upgrade, you would have to rebuild the StreamPublisher to use different methods.

The one that is failing here is a utility method that performs a null or empty check on a string value.

It does the following:

    static public boolean isEmpty(String s) {
        return s == null || s.equals("");
    }

I’m not sure which other methods may fail. You would have to work through it.

Roger.