Aller au contenu | Aller au menu | Aller à la recherche

Site membre du réseau Izardev et LCNET

Tutoriel : création d'application Red5

Après avoir expliqué comment installer Red5 sur un serveur linux Debian, ce tutoriel imagé explique comment créer une application pour Red5 avec Java. Ce tutoriel requiert l'utilisation d'Eclipse, logiciel de développement gratuit et très largement utilisé par les développeurs Java. On peut créer des applications Red5 de plusieurs manières, mais utiliser Eclipse est sans doute le plus simple.

Création du projet Eclipse

Tout d'abord, nous allons créer un nouveau projet que nous appellerons LigamsRed5App :

Sélectionnez File -> New Project

Création d'un nouveau projet

Sélectionnez ensuite Java Project :

Eclipse : sélection de Java Project

Nous nommons maintenant l'application LigamsRed5App :

Eclipse : LigamsRed5App

Maintenant le projet apparaît dans le package explorer, nous allons paramétrer l'application et gérer les bibliothèques que nous allons utiliser.

Paramétrages du projet

Arborescence de l'application

Les applications Red5 ont un dossier WEB-INF, nous allons maintenant créer ce dossier :

Eclipse : WEB-INF

Eclipse : WEB-INF 2

De la même manière, nous allons créer 2 dossiers dans ce répertoire WEB-INF : un dossier classes (qui accueillera les classes compilées) et un dossier src (ou nous placerons les sources).

Assurez-vous d'obtenir quelque chose qui ressemble à ceci :

Eclipse : WEB-INF classes et src

Options de compilation

Maintenant, nous allons définir classes comme la destination des classes Java compilées, et src comme le répertoire des sources Java :

Répertoire src : Clic droit sur le répertoire -> build path -> use as Source Folder

Eclipse : src - source

Répertoire classes :

Sélectionner dans le menu Project -> Properties

Eclipse : project properties

Sélectionnez Java Build Path, puis l'onglet Source , tout en bas, modifiez le Default output folder, en sélectionnant WEB-INF/classes.

Eclipse : Default output folder

Fichiers de configuration de l'application Red5 :

Nous devons maintenant récupérer les fichiers de configuration de red5, vous pouvez soit copier/coller les fichiers d'un application fournie avec Red5, soit récupérer les fichiers fournis dans l'application LigamsRed5App en téléchargement en bas de page.

Si vous avez Red5 installé sur votre machine windows, vous les récupérerez dans ce répertoire : C:\Program Files\Red5\doc\templates\myapp\WEB-INF

Copiez/Collez ces fichiers de configuration dans le répertoire WEB-INF de votre application LigamsRed5App. Faites ensuite un refresh (touche F5) sur votre projet et les fichiers devraient apparaître dans l'explorateur de solution :

Eclipse : fichiers de configuration

Ajout des librairies externes

Créer une application Red5 requiert certaines librairies externes : notamment pour le système de logs, et pour étendre les classes de Red5.

Pour créer la classe principale de notre application, nous allons devoir étendre la classe ApplicationAdapter de Red5 : pour cela, sélectionnez dans le menu principal Project, puis Properties.

Sélectionnez ensuite Java build Path, puis l'onglet Libraries, pressez ensuite le bouton Add External JARs :

Ajout de librairies Externes JAR

Sélectionnez Red5.jar qui est situé dans votre répertoire d'installation de Red5, puis cliquez sur OK. (généralement C:\Program Files\Red5\Red5.jar ).

Ajout des librairies de log :

Répétez l'opération en ajoutant le Jar pick commons-logging-1.1.jar situé dans le répertoire lib du dossier Red5 (généralement C:\Program Files\Red5\lib\commons-logging-1.1.jar )

Création de la classe Java

Maintenant, l'environnement est prêt, nous pouvons créer la classe Java : créer une nouvelle classe :

Eclipse : création d'une classe

Package com.ligams, le nom de la classe sera Main. Nous devons créer les méthodes appStart et appConnect, nous gérons également les connexions, vous pouvez y ajouter un peu de code si vous le souhaiter (authentification etc.).

package com.ligams;

//Debogage : gestion des logs
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
//Gestion des connexions
import org.red5.server.api.IConnection;
import org.red5.server.adapter.ApplicationAdapter;

public class Main extends ApplicationAdapter
{
    private static final Log log = LogFactory.getLog( Main.class );
    /**
     * Démarrage de l'application
     * @return
     */
    public boolean appStart ( )
    {
        log.info( "Main.appStart" );
        return true;
    }
    /**
     * Arrêt de l'application
     */
    public void appStop ( )
    {
        log.info( "Main.appStop" );
    }
    /**
     * Connexion d'un client
     * @param conn 
     * @param params
     */
    public boolean appConnect( IConnection _conn , Object[] _params )
    {
        log.info( "Main.appConnect " + _conn.getClient().getId() );
        return true;
    }
    /**
     * Déconnexion d'un client
     * @param conn
     * @param params
     */
    public void appDisconnect( IConnection conn , Object[] params )
    {
        log.info( "Main.appDisconnect " + conn.getClient().getId() );
    }
    
}

Le code Java est maintenant prêt, nous devons maintenant paramétrer correctement l'application.

Fichiers de paramètres

Ouvrir le fichier log4j.properties :

Ouvrir le fichier red5-web.properties :

webapp.contextPath=/ligams
webapp.virtualHosts=*

Ouvrir le fichier red5-web.xml :

Dans ce fichier, nous devons configurer la classe principale de l'application, modifier le XML ainsi :

<bean id="web.handler" class="com.ligams.Main" singleton="true" />

Ouvrir le fichier web.xml :

Dans ce fichier, modifiez le paramètre WebAppRootKey ainsi :

    <context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>/ligams</param-value>
    </context-param>

Compilation de l'application

Tout est prêt, vous pouvez désormais compiler votre application Red5 : Project puis build Project, ou sélectionnez Build automaticly, et cette application est désormais prête à fonctionner.

Eclipse : compilation d'application

Déploiement de l'application Red5 LigamsRed5App

Pour déployer cette application, créer un dossier ligams dans le répertoire webapps de Red5, puis placez y le dossier WEB-INF, et votre application est prête à fonctionner !

Téléchargement de l'application

Ce fichier contient :

  • La source Java
  • Les fichiers de configuration de l'appli
  • Le fichier compilé

Partagez cet article !

  • Delicious
  • Stumbleupon
  • Digg
  • Facebook
  • Google
  • Linkedin
  • Yahoo Buzz
  • Twitter
Vous avez apprécié cet article ?

Commentaires S'abonner au flux RSS des commentaires

  1. Hello,

    Je ne saurai te le dire, en tout cas ravi que tu aies pu faire fonctionner l'application.
    Même si les messages d'erreur laissent souvent des doutes, regarder les traces au démarrage de red5 donne fréquemment une bonne idée d'où vient l'erreur dans nos applications au départ : pour cela, démarre Red5 en mode console :

    red5.sh sous linux et red5.bat sous windows, sinon, regarde les logs ;-)
  2. Encore moi,

    Désolé, j'ai rien dit, ton script fonctionne bien, mais le fichier à télécharger propose des configs par défaut et non celle qui correspond à ton projet. En changeant la config, tt fonctionne bien.

    Maintenant il faut que je trouve pk la classe que j'ai développé bug :p
  3. Bonjour,

    Je trouve ton tuto très bien fait, en plus tu proposes les sources, quoi de mieux.

    Cependant, en plaçant le contenu de ton fichier zippé dans le dossier webapps, lors du démarrage du serveur red5, celui ci plante.

    "
    Exception in thread "Launcher:/ligams" java.lang.RuntimeException: Failed to load webapplication context class. at org.red5.server.tomcat.TomcatLoader$1.run(TomcatLoader.java:531)
    Caused by: java.lang.ClassNotFoundException: org/springframework/web/context/sup
    port/XmlWebApplicationContext
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at org.red5.server.tomcat.TomcatLoader$1.run(TomcatLoader.java:528)"

    Je ne sais pas d'où vient l'erreur.

    Or, d'autres dossiers sont déjà présent dans webapps (ceux par défaut par exemple), sans ton dossier, les autres flux fonctionnent bien.

    A noter : quand je test les exemples par défaut de red5, avec http://...ester.html
    les flux fonctionnent bien,

    mais quand je crée ma propre classe java et que je change le chemin d'un de ces dossier, présent red5-web.xml pour atteindre ma nouvelle classe, mon flux échoue.

    Je ne vois pas pourquoi, car la compilation de ma classe en .java se déroulent bien.

Ajouter un commentaire

Les commentaires sont tous validés par un modérateur, votre commentaire n'apparaît pas directement sur le site.
Aucun support n'est assuré ici, vous pouvez néanmoins laisser vos remarques et critiques sur l'article, les points de vue pertinents sont toujours les bienvenus.