Apache Adobe Flex TutorialTutoriaux Adobe Flex & AIR en Français

16nov/099

Flex BlazeDS – Tutorial Application Java Messaging avec BlazeDS Turnkey

Ce tutorial Adobe Flex avec BlazeDS va vous expliquer comment monter une application Java en liaison avec une application Flex. On va ici utiliser le service Messaging de BlazeDS pour la communication. Afin de faciliter l'explication, on va utiliser la version "Turnkey" de BlazeDS qui est directement livrée avec un serveur d'application Tomcat. Si vous n'avez pas encore installé BlazeDS Turnkey, suivez ces instructions:

Flex BlazeDS – Configurer son environnement BlazeDS avec Turnkey

BlazeDS offre un service de messaging qui permet aux applications Flex de publier des messages et de s'inscrire à un ensemble de destinations, permettant le développement d'application temps réel et / ou collaboratives comme des chats par exemple.

Création du projet Java

Vous allez avoir besoin d'un projet Java pour la partie serveur de l'application. Tout d'abord, ouvrez Eclipse et créez un nouveau projet Java:

  • Dans le menu d'Eclipse, choisissez File > New > Project
  • Dans l'arbre, choisissez Java Project comme type de projet puis Next
  • Sur la page "Create a Java Project":
    • Entrez "blazeds-server" comme nom de projet
    • Sélectionnez "Create project from existing source", et entrez le chemin vers la webapp "sample" comme par exemple "C:\blazeds\tomcat\webapps\samples\WEB-INF"
    • Next
  • Sur la  page "Java Settings", assurez-vous que le Default output folder soit à "blazeds-server/WEB-INF/classes" puis Finish

Cette configuration de projet vous permet de conserver le code source de vos classes Java dans le dossier WEB-INF/src. Ces classes seront automatiquement compilées dans le dossier WEB-INF/classes.

Création du channel de destination (messaging-config.xml)

Ce que l'on appelle une "Messaging Destination" dans le jargon BlazeDS représente un sujet de conversation en temps réel dont les clients peuvent s'inscrire (écoute) ou contribuer en envoyant leur propres messages.

Pour définir une simple destination de chat pour cette application:

  • Dans votre projet "blazeds-server", ouvrez le fichier "messaging-config.xml" situé dans /WEB-INF/flex/.
  • Ajoutez une destination appelée "tutorial-chat" définie comme ceci:
<destination id="tutorial-chat"/>
  • Redémarrez le serveur application Tomcat (voir manipulation dans le tutorial plus haut)

Le canal de destination est un élément-clé qui va permettre d'échanger de la donnée entre le client et le serveur. En utilisant BlazeDS, une destination utilise typiquement soit un canal de type "streaming", soit un canal de type "polling".

  • Quand on utilise un canal de type "streaming", le serveur reste ouvert jusqu'à ce que le canal de connexion soit fermé, permettant au serveur d'envoyer des bouts de données au client. Puisque les connexions HTTP ne sont pas "duplex", un seul canal AMF ou HTTP requiert en fait deux connexions HTTP pour envoyer de la donnée dans les deux directions. Une est nécessaire pour la réponse streaming du serveur. L'autre est une connexion transitoire, seulement nécessaire quand de la donnée est envoyée vers le serveur.
  • Un canal de type "polling" peut être configuré avec un intervalle de "polling", ou il peut être configuré pour attendre qu'une donnée serveur soit disponible (ce qu'on appelle le "long-polling").
Remplis sous: BlazeDS, Exemple Lire la suite
15nov/093

Flex BlazeDS – Tutorial Application Java Remoting avec BlazeDS Turnkey

Ce tutorial Adobe Flex avec BlazeDS va vous expliquer comment monter votre première application Java en liaison avec une application Flex. On va ici utiliser le service RPC (Remote Procedure Call) de BlazeDS pour la communication. Afin de faciliter l'explication, on va utiliser la version "Turnkey" de BlazeDS qui est directement livrée avec un serveur d'application Tomcat. Si vous n'avez pas encore installé BlazeDS Turnkey, suivez ces instructions:

Flex BlazeDS – Configurer son environnement BlazeDS avec Turnkey

Création du projet Java

Vous allez avoir besoin d'un projet Java pour la partie serveur de l'application. Tout d'abord, ouvrez Eclipse et créez un nouveau projet Java:

  • Dans le menu d'Eclipse, choisissez File > New > Project
  • Dans l'arbre, choisissez Java Project comme type de projet puis Next
  • Sur la page "Create a Java Project":
    • Entrez "blazeds-server" comme nom de projet
    • Sélectionnez "Create project from existing source", et entrez le chemin vers la webapp "sample" comme par exemple "C:\blazeds\tomcat\webapps\samples\WEB-INF"
    • Next
  • Sur la  page "Java Settings", assurez-vous que le Default output folder soit à "blazeds-server/WEB-INF/classes" puis Finish

Cette configuration de projet vous permet de conserver le code source de vos classes Java dans le dossier WEB-INF/src. Ces classes seront automatiquement compilées dans le dossier WEB-INF/classes.

Création des classes Java

Le service de Remoting (RPC) est un des services inclus dans BlazeDS. Ce service permet au client d'accéder aux méthodes des Plain Old Java Object (POJO = "bon vieux objets Java") sur le serveur.

Dans cet exemple, on va déployer une classe, EchoService.java, sur le serveur qui va renvoyer la String passée par le client. Le code suivant montre la définition de EchoService.java:

package remoting;
public class EchoService
{
    public String echo(String text) {
        return "Server says: I received '" + text + "' from you";
    }
}

Pour créer cette classe, faîtes clic droit sur le projet Java que vous venez de créer puis New > Class. Comme nom de package, entrez "remoting" et comme nom de classe, EchoService:

remoting-1

Vous le voyez, cette classe est très simple. La méthode echo() prend un argument de type String et le retourne avec un texte supplémentaire. Une fois que la classe EchoService.java est compilée, elle sera placée dans WEB-INF/classes/remoting. Notez que les classes Java n'ont pas à importer ou à référencer des ressources BlazeDS.

Création de la destination de remoting (remoting-config.xml)

Une "Remoting Destination" expose une classe Java pour que votre application Adobe Flex puisse l'invoquer de manière distante. La propriété "id" de la destination est le nom logique que votre application Flex utilise pour faire référence à la classe distante, ce qui élimine le besoin d'avoir une référence vers un nom complet de classe Java (fully qualified) codé en dur. Ce nom logique est lié au nom de la classe Java dans le configuration de la destination qui se trouve dans remoting-config.xml.

Pour créer cette Remoting Destination:

  • Dans le projet blazeds-server, ouvrez le fichier remoting-config.xml situé dans le dossier "WEB-INF/flex". Si vous l'ouvrez dans Eclipse, passez en vue "Source" pour avoir le code directement.
  • Plusieurs destinations, fournies avec Turnkey sont déjà présentes. Rajoutez la votre:
<destination id="echoServiceDestination" channels="my-amf">
    <properties>
        <source>remoting.EchoService</source>
    </properties>
</destination>
  • Enregistrez le fichier

L'élément XML "source" référence la classe Java et l'attribut "channels" fait référence au canal qui va être utilisé, ici appelé "my-amf".