Forums Développement Multimédia

Aller au contenu

Flex / BlazeDS / Java

CODE Actionscript

  • Vous ne pouvez pas répondre à ce sujet
Aucune réponse à ce sujet

#1 flexair

    Ceinture Blanche

  • Members
  • Pip
  • 1 messages

Posté 12 September 2013 - 12:05 PM

Bonjour tout le monde,

Je suis entrain de tester une communication entre Flex et Java sous BlazeDS. Pour cela j'ai défini en ActionScript et en Java une classe nommée Globale:

Coté Client :

package traitement
{
        [Bindable]
        [RemoteClass(alias="traitement.Globale")]
        public class Globale
        {
               
                public var donnee_1:Number;
                public var donnee_2:Number;
                public var donnee_3:Number;
                public var donnee_4:Number;
                public var donnee_5:Number;
                public var donnee_6:Number;
                public var donnee_7:Number;
                public var donnee_8:Number;
               
                public function Globale(var_1:Number, var_2:Number, var_3:Number, var_4:Number, var_5:Number, var_6:Number, var_7:Number, var_8:Number)
                {
                        donnee_1 = var_1;
                        donnee_2 = var_2;
                        donnee_3 = var_3;
                        donnee_4 = var_4;
                        donnee_5 = var_5;
                        donnee_6 = var_6;
                        donnee_7 = var_7;
                        donnee_8 = var_8;
                }

        }
}

Coté Traitement :

package traitement;

public class Globale {
       
        public double donnee_1;
        public double donnee_2;
        public double donnee_3;
        public double donnee_4;
        public double donnee_5;
        public double donnee_6;
        public double donnee_7;
        public double donnee_8;
       
        public Globale(double var_1, double var_2, double var_3, double var_4, double var_5, double var_6, double var_7, double var_8)
        {
                donnee_1 = var_1;
                donnee_2 = var_2;
                donnee_3 = var_3;
                donnee_4 = var_4;
                donnee_5 = var_5;
                donnee_6 = var_6;
                donnee_7 = var_7;
                donnee_8 = var_8;
        }

}

Voici la classe Invocations déclarée coté traitement et contenant la méthode invocation() :

package traitement;

public class Invocations {

        public Globale invocation()
                {
                        Globale b = new Globale(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0);
                        return b;
                }

}

Voici le fichier MXML invoquant la méthode invocation() via un Remote Object :

<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:ext="ext.*"
        horizontalAlign="center"
        verticalGap="0"
        creationComplete="fonction();"
        >
       
        <mx:Script>
                <![CDATA[
                import mx.rpc.events.FaultEvent;
                import mx.rpc.events.ResultEvent;
                import mx.controls.Alert;

                import traitement.Globale;

                public function erreur(e:FaultEvent):void
                        {
                                Alert.show(e.fault.message);
                        }

                public function succes(e:ResultEvent):void {
                                var a:Globale = Globale(e.result);
                                Alert.show(a.donnee_1.toString());
                        }

                public fonction():void
                        {
                                remoteobject.invocation();
                        }

                ]]>
        </mx:Script>

        <mx:RemoteObject id="remoteobject"
                showBusyCursor="true"
                fault="erreur(event)"
                destination="dest_1"
                result="succes(event)"
                />

</mx:VBox>

Enfin, voici la balise <destination> intégrée au fichier remoting-config.xml :

<destination id="dest_1">
                <properties>
                        <source>traitement.Invocations</source>
                        <scope>application</scope>
                </properties>
</destination>

En lançant l'application, au lieu d'avoir la variable de type Number castée en type String affichée au sein de l'alerte, j'ai ce message d'erreur :

faultCode:Server.Acknowledge.Failed faultString:'Didn't receive an acknowledge message'
faultDetail:'Was expecting mx.messaging.messages.AcknowledgeMessage, but received null'

Merci pour votre aide..



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP