Forums Développement Multimédia

Les formations Mediabox
Les formations Mediabox

Remoting service avec BlazeDS

Compatible Flex Builder. Cliquer pour en savoir plus sur les compatibilités.Compatible ActionScript 3. Cliquer pour en savoir plus sur les compatibilités.Compatible Java. Cliquer pour en savoir plus sur les compatibilités.Par tutocat (TutoCat), le 24 août 2008

Bonjour, dans ce tutoriel nous allons voir comment utiliser des classes java à l’aide du remoting service de BlazeDS.

Vous aurez donc besoin de :



Le service de remoting permet d’accéder à des méthodes publiques de classes Java, comme si ils étaient des objets locaux de l’application Flex. Il y a toutefois quelques restrictions ; les nom des méthodes ne peuvent pas commencer par un “_”, et les noms suivants ne peuvent pas être utilisés car ce sont des méthodes propre à Flex :

  • addHeader()
  • addProperty()
  • clearUsernamePassword()
  • deleteHeader()
  • hasOwnProperty()
  • isPropertyEnumerable()
  • isPrototypeOf()
  • registerClass()
  • setUsernamePassword()
  • toLocaleString()
  • toString()
  • unwatch()
  • valueOf()
  • watch()



Dans mon précédent tutorial « BlazeDS messaging », j’ai expliqué en détail, comment déployer BlazeDS sous un serveur Tomcat, je ne vais donc pas y revenir, vous voudrez bien vous y reporter pour l’installation.



La seule installation que nous allons encore faire est l’installation de la perspective « Web and J2EE Développent » qui est une console de commande pour démarrer/arrêter, ajouter/supprimer des projets à votre server Tomcat depuis Flex. Pour l’installer (cela peut prendre un peu de temps), il faut procéder comme suit:

  1. Allez dans le menu « Help » –> « Software Updates » –> « Find and install… »
  2. Sélectionnez “Search for new features to install”
  3. Cochez “Europa Discovery site” puis sur “Finish”
  4. Choisissez un site miroir et dans la liste des fonctionnalités, sélectionnez « Web and J2EE Développent ».
  5. Ce module dépend d’autres modules, pour tous les inclure, cliquez sur « Select Required » puis sur « Next »
  6. Acceptez les contrats de licences et les modules additionnels « Next », et cliquez sur « Finish ».
  7. Il ne reste plus qu’à ouvrir la nouvelle perspective dans Flex, en faisant : « Window » –> « Perspective » –> « Other » et choisissez « Java EE »



Pour afficher votre serveur dans la perspective, faite un clique droit sur celle-ci et sélectionnez « New » –> « server ».

Sélectionnez ensuite sous l’onglet « Apache » la version de votre serveur, ainsi que le runtime correspondant à votre serveur, puis cliquez sur « Next » et enfin sur « Finish ». Vous devriez voir apparaître votre serveur dans la perspective.



Nous allons maintenant créer notre projet Flex :

  1. File –> New –> Flex project
  2. Entrer comme nom de projet « myRemoteProject »
  3. Application server type : J2EE
  4. Laisser cocher « LiveCycle Data Service »
  5. Cocher « Create combined Java/Flex Project using WTP” puis cliquez sur “Next”
  6. Sélectionnez votre serveur Tomcat dans le champ « Target runtime ». Si il n’est pas déjà affiché, cliquer sur « New » et sélectionnez l’instance de votre serveur.
  7. Renseignez le champ « Flex WAR File » en pointant sur votre fichier blazeDS sous votre répertoire ou est installé Tomcat, puis cliquez sur « Finish ».
  8. Il faut encore paramétrer un dernier point : Faîtes un clique droit sur votre nom de projet dans la vue Flex Navigator, puis cliquez sur propriétés, et sélectionnez Flex Serveur dans la liste de gauche pour en afficher ses paramètres.
  9. Modifiez le champ « Context root » pour que celui-ci désigne correctement le context de votre application, à savoir : /myRemoteProject, et cliquer sur « Apply », suivi de « OK ».
  10. Il ne reste plus qu’à ajouter notre projet au serveur Tomcat, pour cela allez sur la perspective server, faites un clique droit sur votre serveur –> « Add and Remove projects ».
  11. Sélectionnez votre projet dans la liste de gauche et cliquer sur le bouton « ADD », puis sur « Finish »



Nous allons maintenant ajouter notre class Java (Hello.java) sous le répertoire « src-java » :

 
public class Hello {
 
     public String sayHello(String name) {
 
          return "Hello " + name;
 
     }
 
}



Il faut encore configurer BlazeDS pour qu’il autorise les requêtes à notre class Java, pour cela il faut ajouter une destination au fichier « remoting-config.xml » :

 
<destination id="myHello">       
	<properties>         
		<source>Hello</source>      
	</properties>
</destination>



Il ne reste plus qu’à implémenter notre application Flex :

 
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
 
<mx:RemoteObject id="ro" destination="myHello"/>
    	<mx:VBox>
    		<mx:HBox>
    			<mx:TextInput id="nom" text=""/><mx:Button label="Get Data" click="ro.sayHello(nom.text.toString())"/>  
    		</mx:HBox>
    		<mx:Label text="{ro.sayHello.lastResult}" /> 
	</mx:VBox>
</mx:Application>

On utilise la librairie RemoteObject qui nous permet de communiquer avec BlazeDS, lorsque l’on clique sur le bouton « Get Data », le nom entré dans le champ de texte est transmis à la méthode « sayHello » de la classe Java, qui retourne une chaîne de caractères dans l’application Flex.



Il ne vous reste plus qu’à tester.

Source de l'article