Bonjour,
J'essaie de coder une communication flex vers zend amf la plus simple possible.
Voici mes fichiers :
index.php
quand on appelle cette page dans le navigateur j'obtiens le message suivant :
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 <?php error_reporting(E_ALL ); ini_set('display_startup_errors', 1); ini_set('display_errors', 1); // PATH_SEPARATOR set_include_path('../lib/vendor/ZendFramework/library'); require_once("Zend/Loader/Autoloader.php"); $autoloader = Zend_Loader_Autoloader::getInstance(); // Attached class class Foo { /** * @param string $name * @param string $greeting * @return string */ public function hello($name, $greeting = 'Hello') { return $greeting . ', ' . $name; } } $server = new Zend_Amf_Server(); $server->setClass('Foo'); $server->addDirectory(dirname(__FILE__) .'/../services/'); $response = $server->handle(); echo $response; ?>
Mon fichier mxml dans flex builder :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Zend Amf Endpoint
Et mon fichier services-config.xml
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 <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:RemoteObject id="myservice" fault="faultHandler(event)" showBusyCursor="true" destination="zend"> </mx:RemoteObject> <mx:TextInput id="nom" top="10" left="10" /> <mx:TextInput id="type" top="40" left="10" /> <mx:Button click="transmit()" top="70" left="10" /> <mx:TextArea id="debug" top="200" left="200" height="500" width="500" /> <mx:Script> <![CDATA[ function transmit():void {Application.application.nom.text+=msg; } function faultHandler(event:Event):void { Application.application.debug.text+=event; trace(event); } ]]> </mx:Script> </mx:Application>
Code : Sélectionner tout - Visualiser dans une fenêtre à part var msg:String=myservice.Foo.hello("Wade");
Et bien quand j'appuie sur le bouton il ne se passe rien.
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 <?xml version="1.0" encoding="UTF-8"?> <services-config> <services> <service id="zend-service" class="flex.messaging.services.RemotingService" messageTypes="flex.messaging.messages.RemotingMessage"> <destination id="zend"> <channels> <channel ref="zend-endpoint"/> </channels> <properties> <source>*</source> </properties> </destination> </service> </services> <channels> <channel-definition id="zend-endpoint" class="mx.messaging.channels.AMFChannel"> <endpoint uri="http://localhost/~karas/zf/ngs/asg/01/web/index.php" class="flex.messaging.endpoints.AMFEndpoint"/> </channel-definition> </channels> </services-config>
Je sais que le bouton marche car quand je remplace :
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 var msg:String=myservice.Foo.hello("Wade");
J'obtiens des messages d'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 var msg:String=myservice.hello("Wade");
Pouvez vous m'aider. Merci
Partager