|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 8 ![]() |
bonjour,
je dois développer un back-office en flex afin d'administrer une base de donnée MySQL (je précise que je travaille sous windows avec wamp). Pour cela j'utilise la création de service automatique de Flash Builder via Remote Object. La mise en place du service se passe bien et les opérations de test sont ok. J'utilise Flash Builder pour générer les appels aux services et les formulaires. Le problème que je rencontre c'est que lorsque je test l'application les opérations d'insert, delete, update sur la base de donnée ne sont pas effectuées (aucune erreure n'est signalée). Je peux lire les infos de la base (select) mais pas effectuer d'autres opérations. En testant l'appli je me rends compte que le problème vient du fait que pour les opérations insert, delete, update, la classe de service AS3 ne fait pas appel à la classe PHP qui lui correspond alors que tout se passe bien pour les opérations de select. Je suis donc à la recherche d'infos me permettant de résoudre ce problème. Merci. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 278 ![]() |
Bonjour et bienvenue,
que t'a généré Flash builder ? Un backend avec Zend Framework ? As tu vérifié que ton serveur AMF mappe bien tes services et que tes retours en as3 se font bien sur l'event result et pas fault ?
__________________
Je ne réponds pas aux questions envoyées par mp |
|
|
00
|
|
|
#3 | ||||
|
Invité de passage
![]() Inscription : février 2011 Messages : 8 ![]() |
Merci pour ta réponse rapide.
- que t'a généré Flash builder ? il m'a généré toute la couche de service PHP (introspection avec Zend Framework) et AS3 ainsi que les classes ValueObject AS3. J'ai aussi fait généré les appels aux services et les formulaires par Flash Builder. - As tu vérifié que ton serveur AMF mappe bien tes services ? Toutes les opérations de test (insert, delete, update, select) effectuées avec Flash Builder fonctionne parfaitement. Donc j'en déduis qu'il n'y a pas de souci côté PHP et AMF. - tes retours en as3 se font bien sur l'event result et pas fault ? Pour ce qui est des retour AS3 c'est flash builder qui a généré les appels aux services donc aparemment pas de pb de ce côté là. Surtout que les opérations de select marchent parfaitement. Le pb est vraiment lié au fait que pour les opérations insert, delete, update, la classe de service AS3 générée par Flash Builder ne lance pas la classe de service PHP qui gère les opérations sur la base. Ce qui est surprenant c'est que le processus fonctionne parfaitement sur les opérations de select qui sont gérés par la même classe AS3. Aprés avoir analysé la classe de service AS3 (qui est la classe génée par defaut sans aucune modif) je ne vois pas du tout pourquoi sur les méthodes (create, delete, update) le service côté serveur n'est pas invoqué. J'imagine qu'il doit y avoir un paramêtre à configuré ... Je précise que je n'ai aucune erreur relevée lors de la validation des formulaires de l'appli de test. Voici qq échantillons de code généré : - la méthode de la classe de service AS3 censé apeller la méthode de la classe service PHP Code :
Code :
|
||||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 278 ![]() |
J'avoue que j'utilise jamais Flash builder pour générer mes services donc je suis pas trop habitué à ces notations et encore moins aux opérations.
Cependant, quelque chose me surprend : tu ne mets pas d'ecouteur sur _internal_token afin d'écouter la réponse du serveur ?
__________________
Je ne réponds pas aux questions envoyées par mp |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 8 ![]() |
Dans ce cas c'est la méthode createTest(item:Object) de la classe de service AS3 qui renvoie la réponse du serveur (return _internal_token).
|
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 278 ![]() |
et ce return est exploité où ensuite ?
__________________
Je ne réponds pas aux questions envoyées par mp |
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : février 2011 Messages : 8 ![]() |
Le return est exploité ici :
Code :
|
||
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 278 ![]() |
et ce createTestResult est de quel type et où est il crée stp ?
__________________
Je ne réponds pas aux questions envoyées par mp |
|
|
00
|
|
|
#9 | ||
|
Invité de passage
![]() Inscription : février 2011 Messages : 8 ![]() |
Il est créé ici :
Code :
|
||
|
|
00
|
|
|
#10 | ||
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 278 ![]() |
Essaies de tester les événements comme ceci :
Code :
__________________
Je ne réponds pas aux questions envoyées par mp |
||
|
|
00
|
|
|
#11 | ||
|
Invité de passage
![]() Inscription : février 2011 Messages : 8 ![]() |
Donc j'ai testé...
rien ne se passe. mais bon l'évènement Fault est déja écouté ici : Code :
|
||
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 278 ![]() |
On dirait que la destination de ton remote object n'a pas été définie.
Personnellement, j'applique la méthode décrite sur le site de zend, au moins je comprends tout ce que je fais ensuite. As tu testé de faire cette méthode via un fichier xml décrivant tes services ?
__________________
Je ne réponds pas aux questions envoyées par mp |
|
|
00
|
|
|
#13 | ||
|
Invité de passage
![]() Inscription : février 2011 Messages : 8 ![]() |
En fait ici la configuration du Remote Object est entièrement gérée par la classe de service AS3:
Code :
J'arrive à alimenter une DataGrid avec le contenu d'une table. Donc la passerelle entre Flex et PHP est opérationnelle. Par contre impossible d'effectuer une autre opération. J'en viens à me demander si il n'y a pas une histoire de restriction ou de droit concernant les opérations insert, delete, update ... ce qui me paraît vraiment improbable. |
||
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 278 ![]() |
Envois tu bien via ton remote object autant de paramètres qu'il y en a dans tes services PHP ?
Sinon, tu peux regarder les logs apache ou définir une fonction de log dans tes services afin d'historiser un peu ce que fait ton service et trouver ainsi les éventuel problèmes
__________________
Je ne réponds pas aux questions envoyées par mp |
|
|
00
|
|
|
#15 | ||||
|
Invité de passage
![]() Inscription : février 2011 Messages : 8 ![]() |
Donc j'ai trouvé un moyen de débugger ces problèmes.
Je donne la méthode que j'ai utilisé pour ceux qui rencontrerait les même pb que moi. - J'ai supprimé les méthodes create, update et delete de la classe de service PHP. - Ensuite j'ai éxécuté le programme afin de relancer l'introspection de la classe de service PHP par le zend framework ce qui a pour effet de mettre à jour la classe de service AS3 (suppression des méthodes create, update, delete). - Puis j'ai remis les méthodes create, update, delete dans la classe de service PHP - Enfin j'ai rééxécuté le programme afin de relancer une nouvelle introspection et donc de remettre à jour la classe de service AS3 (recréation des méthodes create, update, delete). Ce que ça donne niveau code c'est le type des paramètres et le type des retours des méthodes de create, update, delete de la classe de service AS3 qui ont changé: avant manip: Code :
Code :
Si quelqu'un a une explication ou une méthode plus propre je suis preneur. |
||||
|
|
00
|
|
|
#16 | |||||
|
Invité de passage
![]() Ingénieur développement logiciels Inscription : avril 2011 Messages : 1 ![]() |
Citation:
Salut gui-yem! Grace à votre réponse j'ai pu résoudre mon problème qui m'a pris presque une semaine. J'utilise Flash builder 4 pour developper un intranet. J'avoue que toutes les fonctions générées pour un service fonctionnent correctement. J'ai résolu mon problème comme ça: 1* j'ai commenté les ligne de code des fonction create, delete et update au niveau du service concerné 2* ensuite j'ai exécuté le programme flash 3* j'ai décommenté les lignes que j'avais commenté a l'étape 1 4* j'ai reexécuté le programme et l'insertion marche très bien J'espère que ça va aider quelqu'un qui utilise la méthode que j ai suivi! Merci |
|||||
|
|
10
|
|
|
#17 |
|
Invité de passage
![]() Benoît Durandamateur motivé Inscription : avril 2011 Messages : 1 ![]() |
Eh bien les gars, je ne saurais trop vour remercier de nous avoir fait partager vos recherches et surtout vos solutions !
Ça fait pratiquement une semaine que je m'arrache les cheveux sur ce problème, et mes nerfs étaient sur le point de lâcher tous en même temps. Je me suis inscrit au forum juste pour vous remercier: Merci, merci, et encore merci ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com