Wowza Community

How do I get my module onto my server?

I can’t seem to properly get my module installed on my server. The correct folders and Application.xml files are all in their proper places.

It works locally. I can run the simulated server through the eclipse debugger and use my app just fine.

However, when attempt to move it to my actual EC2 instance (that is, the officially-provided AMI available here), it breaks in one of two ways:

  1. No error message on the server or the client. The client simply hangs trying to connect.

  2. This error message appears on the server

loadModFunctions[recorder/_definst_]: Module class not found or could not be loaded. Check [install-dir]/conf/recorder/Application.xml to be sure all Modules/Module/Class paths are correct: name:RecorderModule class:com.xxxxxxxxx.recorder.RecorderModules

The client can connect and publish streams, but it cannot use any of the functionality contained in the module.

I can produce problem #1 when I just copy my .jar file over and put it in the lib folder. I think my problem here is similar to the one in this thread.

So I, based on that, I tried to combine my dependencies in with my .jar, and all attempts so far led to error message #2. I even attempted to edit my META-INF/MANIFEST.MF file of the combined .jar to include the “Main-Class” of my application as it is in the debug settings of Eclipse, which is “com.wowza.wms.bootstrap.Bootstrap”, but that didn’t help.

I’ve tried to use both a Runnable Jar file and a regular Jar archive through Eclipse, but I was not able to get my module working on my server.

So how am I supposed to do this?


Let’s continue to work through the ticket that you have opened with support.

For reference this is Ticket # 104695


Thank you for updating the thread.


I hope you do not resent me getting help from the community during your off hours

When it breaks in way #1, I get this error:

Exception in thread "ServerHandler.12" java.lang.NoClassDefFoundError: com/amazonaws/auth/AWSCredentialsProvider
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(
        at Method)
        at java.lang.ClassLoader.loadClass(
        at java.lang.ClassLoader.loadClass(
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(
        at com.wowza.wms.util.ModuleUtils.addModuleToApp(
        at com.wowza.wms.util.ApplicationUtils.a(
        at com.wowza.wms.util.ApplicationUtils.loadConfigFile(
        at com.wowza.wms.application.ApplicationInstance.a(
        at com.wowza.wms.application.ApplicationInstance.<init>(
        at com.wowza.wms.application.Application.getAppInstance(
        at com.wowza.wms.module.ModuleConnect.connect(
        at com.wowza.wms.request.RequestProcessFunctions.processFunctions(
        at com.wowza.wms.request.RequestProcessData.flushFunction(
        at com.wowza.wms.request.RequestProcessData.processNextRequest(
        at com.wowza.wms.request.RTMPRequestAdapter.service(
        at com.wowza.wms.server.ServerHandler.a(
        at com.wowza.wms.server.ServerHandler.a(
        at com.wowza.wms.server.ServerHandler.messageReceived(
        at java.util.concurrent.ThreadPoolExecutor.runWorker(
        at java.util.concurrent.ThreadPoolExecutor$
Caused by: java.lang.ClassNotFoundException: com.amazonaws.auth.AWSCredentialsProvider
        at Method)
        at java.lang.ClassLoader.loadClass(
        at java.lang.ClassLoader.loadClass(
        ... 31 more

I resolved it by installing everything differently on a new server.

I took by auto-generated .jar file, and the two jar files that it depended on, commons-codec-1.9 and aws-java-sdk-1.4.7, and installed them using the “startup package” method.

And everything worked fine.