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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package traitement;
 
public class Globale {
 
	public int donnee_1;
	public int donnee_2;
	public int donnee_3;
	public int donnee_4;
	public int donnee_5;
	public int donnee_6;
	public int donnee_7;
	public int donnee_8;
 
	public Globale(int var_1, int var_2, int var_3, int var_4, int var_5, int var_6, int var_7, int 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() :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
package traitement;
 
public class Invocations {
 
	public Globale invocation()
		{
			Globale b = new Globale(1,2,3,4,5,6,7,8);
			return(b);
		}
 
}
Et voici le fichier MXML invoquant la méthode invocation() via un Remote Object :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<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..