I am new to Red5. I decided to build my first app and went to https://github.com/Red5 to download the necessary software. So far I have installed jre 8, jdk 1.8, Maven, flex SDK 4.6 and Red5 1.0.5. I also have installed the eclipse plugin. I get an error in Application.java saying that that the hierarchy of the type Application is inconsistent and other messages complaining about not being able to resolve org.red5.server.api.Iconnect and org.red5.server.api.scope.IScope. I can clear those errors by deleting red5.server.jar from the build path and then adding it back. But I have to use org.red5.server.api.IScope instead of ...api.scope.IScope for it to work. At this point I guess I don't have the right red5.jar. I am not using flash builder to compile the client but mxmlc.exe that comes with flex. I get the swf file and then I run it but it won't connect(NetConnection.connect.failed). I am running it locally using Eclipse Mars.
Server
package org.red5.core;
import org.red5.logging.Red5LoggerFactory;
import org.red5.server.adapter.MultiThreadedApplicationAdapter;
import org.red5.server.api.IConnection;
import org.red5.server.api.IScope;
//import org.slf4j.Logger;
/**
* Sample application that uses the client manager.
*
* @author The Red5 Project (red5@osflash.org)
*/
public class Application extends MultiThreadedApplicationAdapter {
//private static Logger log = Red5LoggerFactory.getLogger(Application.class);
/** {@inheritDoc} */
@Override
public boolean connect(IConnection conn, IScope scope, Object[] params) {
//log.info("appConnect");
return true;
}
/** {@inheritDoc} */
@Override
public void disconnect(IConnection conn, IScope scope) {
//log.info("disconnect");
super.disconnect(conn, scope);
}
}
Client
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
creationComplete="onCreationComplete(event)">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.FlexEvent;
private var connection:NetConnection;
public function onCreationComplete(event:FlexEvent) : void {
// setup connection code
connection = new NetConnection();
connection.connect("rtmp://localhost/Project");
connection.addEventListener(NetStatusEvent.NET_STATUS, onConnectionNetStatus);
connection.client = this;
}
public function onConnectionNetStatus(event:NetStatusEvent) : void {
// did we successfully connect
if(event.info.code == "NetConnection.Connect.Success") {
Alert.show("Successful Connection", "Information");
} else {
Alert.show("Unsuccessful Connection", event.info.code);
}
}
]]>
</mx:Script>
</mx:Application>
When running the client.swf
[ERROR] [RTMPConnectionExecutor#OXEXJYYHVOTE2-1] org.red5.server.net.rtmp.BaseRTMPHandler - Exception
java.lang.NoClassDefFoundError: org/red5/server/api/IScope
at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.8.0_45]
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) ~[na:1.8.0_45]
at java.lang.Class.privateGetMethodRecursive(Class.java:3048) ~[na:1.8.0_45]
at java.lang.Class.getMethod0(Class.java:3018) ~[na:1.8.0_45]
at java.lang.Class.getMethod(Class.java:1784) ~[na:1.8.0_45]
at org.red5.logging.Red5LoggerFactory.getLogger(Red5LoggerFactory.java:56) ~[red5-server-common-1.0.5-RELEASE.jar:1.0.5-RELEASE]
at org.red5.server.adapter.MultiThreadedApplicationAdapter.connect(MultiThreadedApplicationAdapter.java:297) ~[red5-server.jar:1.0.5-RELEASE]
at org.red5.server.scope.Scope.connect(Scope.java:255) ~[red5-server-common-1.0.5-RELEASE.jar:na]
at org.red5.server.BaseConnection.connect(BaseConnection.java:354) ~[red5-server-common-1.0.5-RELEASE.jar:na]
at org.red5.server.net.rtmp.RTMPConnection.connect(RTMPConnection.java:398) ~[red5-server-common-1.0.5-RELEASE.jar:1.0.5-RELEASE]
at org.red5.server.net.rtmp.RTMPMinaConnection.connect(RTMPMinaConnection.java:87) ~[red5-server-common-1.0.5-RELEASE.jar:1.0.5-RELEASE]
at org.red5.server.net.rtmp.RTMPHandler.onCommand(RTMPHandler.java:347) ~[red5-server-common-1.0.5-RELEASE.jar:1.0.5-RELEASE]
at org.red5.server.net.rtmp.BaseRTMPHandler.messageReceived(BaseRTMPHandler.java:105) ~[red5-server-common-1.0.5-RELEASE.jar:1.0.5-RELEASE]
at org.red5.server.net.rtmp.ReceivedMessageTask.call(ReceivedMessageTask.java:57) [red5-server-common-1.0.5-RELEASE.jar:1.0.5-RELEASE]
at org.red5.server.net.rtmp.ReceivedMessageTask.call(ReceivedMessageTask.java:11) [red5-server-common-1.0.5-RELEASE.jar:1.0.5-RELEASE]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_45]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_45]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_45]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_45]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45]
Caused by: java.lang.ClassNotFoundException: org.red5.server.api.IScope
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) ~[tomcat-embed-core.jar:7.0.57]
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) ~[tomcat-embed-core.jar:7.0.57]
... 21 common frames omitted
[ERROR] [RTMPConnectionExecutor#DZX5W02SUWV7J-1] org.red5.server.net.rtmp.BaseRTMPHandler - Exception
java.lang.NoClassDefFoundError: org/red5/server/api/IScope
at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.8.0_45]
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) ~[na:1.8.0_45]
at java.lang.Class.privateGetMethodRecursive(Class.java:3048) ~[na:1.8.0_45]
at java.lang.Class.getMethod0(Class.java:3018) ~[na:1.8.0_45]
at java.lang.Class.getMethod(Class.java:1784) ~[na:1.8.0_45]
at org.red5.logging.Red5LoggerFactory.getLogger(Red5LoggerFactory.java:56) ~[red5-server-common-1.0.5-RELEASE.jar:1.0.5-RELEASE]
at org.red5.server.adapter.MultiThreadedApplicationAdapter.connect(MultiThreadedApplicationAdapter.java:297) ~[red5-server.jar:1.0.5-RELEASE]
at org.red5.server.scope.Scope.connect(Scope.java:255) ~[red5-server-common-1.0.5-RELEASE.jar:na]
at org.red5.server.BaseConnection.connect(BaseConnection.java:354) ~[red5-server-common-1.0.5-RELEASE.jar:na]
at org.red5.server.net.rtmp.RTMPConnection.connect(RTMPConnection.java:398) ~[red5-server-common-1.0.5-RELEASE.jar:1.0.5-RELEASE]
at org.red5.server.net.rtmp.RTMPMinaConnection.connect(RTMPMinaConnection.java:87) ~[red5-server-common-1.0.5-RELEASE.jar:1.0.5-RELEASE]
at org.red5.server.net.rtmp.RTMPHandler.onCommand(RTMPHandler.java:347) ~[red5-server-common-1.0.5-RELEASE.jar:1.0.5-RELEASE]
at org.red5.server.net.rtmp.BaseRTMPHandler.messageReceived(BaseRTMPHandler.java:105) ~[red5-server-common-1.0.5-RELEASE.jar:1.0.5-RELEASE]
at org.red5.server.net.rtmp.ReceivedMessageTask.call(ReceivedMessageTask.java:57) [red5-server-common-1.0.5-RELEASE.jar:1.0.5-RELEASE]
at org.red5.server.net.rtmp.ReceivedMessageTask.call(ReceivedMessageTask.java:11) [red5-server-common-1.0.5-RELEASE.jar:1.0.5-RELEASE]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_45]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_45]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_45]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_45]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45]
Caused by: java.lang.ClassNotFoundException: org.red5.server.api.IScope
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) ~[tomcat-embed-core.jar:7.0.57]
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) ~[tomcat-embed-core.jar:7.0.57]
... 21 common frames omitted
[WARN] [ConnectionChecker-1] org.red5.server.net.rtmp.RTMPConnManager - Connection OXEXJYYHVOTE2 has exceeded the max inactivity threshold
[WARN] [ConnectionChecker-1] org.red5.server.net.rtmp.RTMPConnManager - Connection not found for OXEXJYYHVOTE2
The scope package is required in later versions of red5. You seem to be compiling your app with an older version of the red5.jar and then deploying to a server running the newer version 1.0.5. Build and compile with the 1.0.5 red5.jar and your issue will be resolved.