by Adobe
Adobe logo

Created

22 March 2010

- Requirements
User level
All

 

 

 
Déployer le code de service

 
 

 
Code

Aucune modification du code.
 

 
Didacticiel

Dans ce didacticiel, vous allez identifier à quel endroit du serveur web placer le code de service, c'est-à-dire les fichiers de classe côté serveur, afin que votre application Flex puisse y accéder. Cette tâche étant étroitement liée au serveur d'applications, consultez la section relative à la technologie de votre serveur : PHP, ColdFusion ou Java.
 
 
PHP
Lors du déploiement d'une application Flex et PHP sur un serveur de production, vous devez vérifier que :
 
  • Zend Framework est installé sur le serveur ;
  • les fichiers gateway.php et amf-config.ini se trouvent dans le même dossier que le fichier SWF ;
  • les classes PHP appelées par l'application Flex figurent dans l'un des répertoires indiqués dans le fichier amf-config.ini.
Vous devez également mettre le fichier amf-config.ini à jour en fonction de l'emplacement de Zend Framework et du dossier racine web du serveur de production.
 
 
Étape 1 : Dans Flash Builder, examinez le fichier EmployeeService généré.
Le nom exact de ce fichier est services.employeeservice._Super_EmployeeService.as. Repérez les instructions d'affectation source, endpoint et destination (voir Figure 5).
 
Lorsque vous créez un service de données dans Flash Builder, vous indiquez l'emplacement de la classe PHP à appeler. En effet, le nom de cette classe est codé en dur dans ce fichier de service généré, mais pas son emplacement.
 
Consultez le code indiquant l'emplacement de la classe PHP.
Figure 5. Consultez le code indiquant l'emplacement de la classe PHP.
Notez que l'instruction endpoint, qui indique le fichier à appeler, désigne le fichier gateway.php situé dans le même répertoire que le fichier SWF. Si ce fichier n'existe pas, il sera créé par Flash Builder. Lorsque vous déployez vos fichiers sur un serveur web, vous devez veiller à conserver gateway.php dans le même dossier que le fichier SWF.
 
En cas de modification de la classe PHP, vous pouvez actualiser le service de données à partir de la vue Données/Services, ce qui entraîne la mise à jour des fichiers générés. En revanche, si vous renommez la classe PHP, vous devez recréer le service de données.
 
 
Étape 2 : Ouvrez les fichiers Flash Remoting générés.
Ouvrez les fichiers gateway.php et amf-config.ini du dossier bin-debug (ou bin-release).
 
gateway.php constitue le point de terminaison de toutes les demandes Flash Remoting émises par l'application. Il traite la demande de service conjointement avec Zend Framework, en appelant la méthode de classe appropriée et en se chargeant de la traduction des données et de la création des paquets. Il fait référence à un fichier de configuration, amf_config.ini, qui définit l'emplacement du dossier racine web et celui de Zend Framework, un indicateur de production (pour supprimer les messages de débogage) et les répertoires où rechercher les classes indiquées dans les appels de service :
 
[zend] ;set the absolute location path of webroot directory, example: ;Windows: C:\apache\www ;MAC/UNIX: /user/apache/www webroot =/usr/local/zend/apache2/htdocs/ ;set the absolute location path of zend installation directory, example: ;Windows: C:\apache\PHPFrameworks\ZendFramework\library ;MAC/UNIX: /user/apache/PHPFrameworks/ZendFramework/library ;zend_path = [zendamf] amf.production = true amf.directories[]=TestDrive/services
Dans la mesure où ce fichier comporte la liste des répertoires des classes utilisées dans les appels de service Flash Remoting, lorsque vous déployez votre application Flex sur un serveur web, les classes PHP auxquelles elle fait appel doivent impérativement se trouver dans l'un de ces répertoires. Dans le cas contraire, vous devez mettre ce fichier à jour afin qu'il contienne également le nouvel emplacement du fichier de service.
 
Bien entendu, vous devez aussi mettre le fichier amf-config.ini à jour en fonction de l'emplacement du dossier racine web et de Zend Framework sur le serveur de production.
 
 
Étape 3 : Ouvrez le dossier racine web PHP.
Recherchez le dossier ZendFramework.
 
Vous devez vérifier que Zend Framework est également installé sur le serveur de production et que son emplacement est correctement indiqué dans le fichier amf-config.ini.
 
Félicitations ! Dans ce module, vous avez appris les concepts de base du déploiement d'une application Flex : création d'une version validée, incorporation de l'application dans une page web et accessibilité des fichiers de service côté serveur.
 
Pour compléter vos connaissances, consultez les autres didacticiels de test, qui abordent des sujets tels que la personnalisation de l'aspect de l'application et l'utilisation des composants de représentation graphique Flex.
 
 
ColdFusion
Vous pouvez placer votre application Flex et les composants ColdFusion qu'elle appelle sous /ColdFusion/wwwroot/. Ils ne doivent pas nécessairement figurer dans le même dossier et peuvent se trouver dans n'importe quel sous-dossier. Le chemin relatif qui les sépare est sans importance. En revanche, les composants CFC doivent se trouver au même emplacement relatif au dossier racine web que celui où ils figuraient sur le serveur de développement.
 
Pour placer les composants CFC en dehors du dossier racine web, vous devez créer un mappage ColdFusion désignant cet emplacement, puis spécifier l'utilisation de mappages ColdFusion dans le fichier de configuration utilisé pour les demandes Flash Remoting.
 
 
Étape 1 : Recherchez le fichier de configuration de Flash Remoting.
Sélectionnez Projet > Propriétés, puis Compilateur Flex.
 
L'argument de compilateur suivant apparaît :
 
-services "/Applications/ColdFusion9/wwwroot/WEB-INF/flex/services-config.xml"
Cet argument a été ajouté lorsque vous avez créé le projet (en tant que projet ColdFusion utilisant Flash Remoting). Il indique l'emplacement du fichier services-config.xml, qui contient les détails du mode de communication entre l'application et le serveur et désigne les classes côté serveur qui doivent gérer les demandes, la traduction des données et la création des paquets.
 
 
Étape 2 : Ouvrez le fichier services-config.xml.
Ce fichier se trouve dans /ColdFusion9/wwwroot/WEB-INF/flex/. Repérez la balise coldfusion dans la définition du canal my-cfamf.
 
Elle contient des paramètres qui déterminent si ColdFusion utilise des mappages pour rechercher les composants CFC, si les méthodes publiques et distantes seront accessibles et comment gérer la casse des valeurs de propriété lors de la conversion entre ColdFusion et ActionScript (la distinction MAJ/min s'applique dans ActionScript, mais pas dans ColdFusion).
 
<coldfusion> <access> <use-mappings>true</use-mappings> <method-access-level>remote</method-access-level> </access> <use-accessors>true</use-accessors> <use-structs>false</use-structs> <property-case> <force-cfc-lowercase>true</force-cfc-lowercase> <force-query-lowercase>true</force-query-lowercase> <force-struct-lowercase>true</force-struct-lowercase> </property-case> </coldfusion>
Une instruction include concernant un fichier remoting-config.xml figure également vers le haut du fichier.
 
<service-include file-path="remoting-config.xml" />
Remarque : Si vous n'utilisez pas ColdFusion 9, vos fichiers de configuration sont légèrement différents. Pour plus de détails, consultez la documentation ColdFusion.
 
 
Étape 3 : Ouvrez le fichier remoting-config.xml.
Ce fichier se trouve dans /ColdFusion9/wwwroot/WEB-INF/flex/. Recherchez la destination ColdFusion.
 
Il s'agit de la destination par défaut utilisée pour les appels adressés aux composants ColdFusion par une application Flex. Si le caractère générique * est indiqué comme source, cela signifie que l'application peut appeler un composant CFC dans n'importe quel emplacement. Dans ce cas, l'emplacement du composant CFC doit être indiqué dans le fichier de l'application Flex.
 
<destination id="ColdFusion"> <channels> <channel ref="my-cfamf"/> </channels> <properties> <source>*</source> </properties> </destination>
Remarque : Vous pouvez également spécifier des destinations existantes associées à un point de terminaison CFC particulier.
 
 
Étape 4 : Dans Flash Builder, examinez le fichier EmployeeService généré.
Le nom exact de ce fichier est services.employeeservice._Super_EmployeeService.as. Repérez les instructions d'affectation source et destination (voir Figure 6).
 
Lorsque vous créez un service de données dans Flash Builder, vous indiquez l'emplacement du composant CFC à appeler, et cette valeur est codée en dur dans ce fichier de service généré. La valeur de destination est ColdFusion, c'est-à-dire le nom de la destination par défaut indiqué dans le fichier remoting-config, et celle de source est le chemin d'accès au composant CFC à partir du dossier racine web.
 
Consultez le code indiquant l'emplacement du composant CFC.
Figure 6. Consultez le code indiquant l'emplacement du composant CFC.
En cas de modification du composant CFC, vous pouvez actualiser le service de données à partir de la vue Données/Services, ce qui entraîne la mise à jour des fichiers générés. En revanche, si vous déplacez ou renommez le composant CFC, vous devez recréer le service de données. Cela signifie que lorsque vous déployez l'application Flex sur un serveur web, les composants CFC qu'elle appelle doivent se trouver au même emplacement relatif au dossier racine web que celui où ils figuraient sur le serveur de développement.
 
Félicitations ! Dans ce module, vous avez appris les concepts de base du déploiement d'une application Flex : création d'une version validée, incorporation de l'application dans une page web et accessibilité des fichiers de service côté serveur.
 
Pour compléter vos connaissances, consultez les autres didacticiels de test, qui abordent des sujets tels que la personnalisation de l'aspect de l'application et l'utilisation des composants de représentation graphique Flex.
 
 
Java
Lors du déploiement d'une application Flex ou Java sur un serveur de production, vous devez configurer BlazeDS pour l'application web à laquelle vous ajoutez votre application Flex. Vous devez également modifier le fichier remoting-config.xml de façon à ce que sa destination ait le nom que celui utilisé dans votre application et pointe vers la classe Java appropriée.
 
 
Étape 1 : Localisez les fichiers BlazeDS requis.
Ouvrez le dossier /testdrive/ .
 
Si vous créez une nouvelle application web, vous pouvez directement mettre en package votre application de développement et la déployer. Sinon, vous devez configurer BlazeDS pour l'application web de production. Vous pouvez obtenir les fichiers nécessaires dans l'application web de développement ou télécharger le fichier WAR BlazeDS et les récupérer dans le fichier WAR extrait.
 
Ouvrez le dossier /testdrive/WEB-INF/lib . Copiez tous les fichiers JAR dans le dossier lib de l'application web de production (voir Figure 7).  La plupart de ces fichiers permettent de gérer la communication entre Flash Player et le serveur, à l'exception des fichiers flex-rds-server.jar et derby.jar. Le fichier flex-rds-server.jar est un nouveau fichier de BlazeDS 4 (actuellement disponible en version bêta) : Flash Builder l'utilise au cours de la phase de développement pour créer un service de données par introspection des classes côté serveur. Le fichier derby.jar est destiné à la base de données Apache Derby incorporée, utilisée par l'application.
 
Consultez les fichiers BlazeDS requis.
Figure 7.Consultez les fichiers BlazeDS requis.
Ouvrez le dossier /testdrive/WEB-INF/flex. Copiez-le dans le dossier WEB-INF de l'application web de production. Il contient l'ensemble des fichiers de configuration de BlazeDS.
 
Ouvrez le dossier /testdrive/WEB-INF/web.xml. Copiez-le également dans le dossier WEB-INF de l'application de production. Si un fichier web.xml est déjà configuré dans l'application de production, copiez simplement le mappage de Servlet pour MessageBrokerServlet et l'écouteur de HttpFlexSession. Voici le code à utiliser :
 
<!-- Http Flex Session attribute and binding listener support --> <listener> <listener-class>flex.messaging.HttpFlexSession</listener-class> </listener> <!-- MessageBroker Servlet --> <servlet> <servlet-name>MessageBrokerServlet</servlet-name> <display-name>MessageBrokerServlet</display-name> <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class> <init-param> <param-name>services.configuration.file</param-name> <param-value>/WEB-INF/flex/services-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>MessageBrokerServlet</servlet-name> <url-pattern>/messagebroker/*</url-pattern>> </servlet-mapping>
L'autre mappage de Servlet, contenu dans le fichier web.xml, fait référence au RDSDispatchServlet utilisé par Flash Builder pour créer un service de données par introspection des classes côté serveur.
 
 
Étape 2 : Ouvrez les fichiers services-config.xml et remoting-config.xml.
Ils se trouvent dans le dossier /testdrive/WEB-INF/flex/.
 
Le fichier services-config.xml contient une instruction include concernant le fichier remoting-config.xml.
 
<service-include file-path="remoting-config.xml" />
Dans le fichier remoting-config.xml, repérez la destination employeeService :
 
<destination id="employeeService"> <properties> <source>services.EmployeeService</source> <scope>application</scope> </properties> </destination>
L'application du serveur de production à laquelle vous ajoutez votre application doit également contenir un fichier remoting-config.xml, avec une destination de ce nom et pointant vers la classe Java appropriée. La classe Java peut se trouver à un emplacement différent de celui qu'elle avait sur le serveur de développement ; cette destination doit refléter son emplacement sur le serveur de production.
 
 
Étape 3 : Repérez la référence de l'application Flex au fichier service-config.xml.
Dans Flash Builder, sélectionnez Projet > Propriétés > Compilateur Flex.
 
L'argument de compilateur qui apparaît se présente de la manière suivante :
 
-services "/Applications/tomcat/webapps/testdrive/WEB-INF/flex/services-config.xml"
Cet argument a été ajouté lorsque vous avez créé le projet (en tant que projet J2EE utilisant BlazeDS).
 
 
Étape 4 : Dans Flash Builder, examinez le fichier EmployeeService généré.
Le nom exact de ce fichier est services.employeeservice._Super_EmployeeService.as. Repérez l'instruction d'affectation de destination (voir Figure 8).
 
Lorsque vous créez un service de données dans Flash Builder, vous sélectionnez un service dans une liste de destinations prédéfinies dans le fichier remoting-config.xml.
 
Consultez le code indiquant la destination de la classe Java.
Figure 8. Consultez le code indiquant la destination de la classe Java.
En cas de modification de la classe , vous pouvez actualiser le service de données à partir de la vue Données/Services, ce qui entraîne la mise à jour des fichiers générés. Si vous déplacez la classe, veillez à mettre à jour la destination dans le fichier remoting-config.xml afin de refléter son nouvel emplacement. En revanche, si vous renommez la classe en cours de développement, vous devez recréer le service de données.
 
Félicitations ! Dans ce module, vous avez appris les concepts de base du déploiement d'une application Flex : création d'une version validée, incorporation de l'application dans une page web et accessibilité des fichiers de service côté serveur.
 
Pour compléter vos connaissances, consultez les autres didacticiels de test, qui abordent des sujets tels que la personnalisation de l'aspect de l'application et l'utilisation des composants de représentation graphique Flex.
 

 
Pour en savoir plus

Pour en savoir plus sur cette rubrique, consultez les ressources suivantes :
 
 
Documentation