Salut,
J'ai téléchargé BlazeDS, j'ai créé un nouveau projet Flex dans eclipse, avec un serveur J2EE (tomcat) et j'ai activé "remote object access service" à la création du projet.
J'ai édité remoting-config.xml comme ceci :
Voici mes classes java de test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5<destination id="programmeDAO"> <properties> <source>test.ProgrammeDAO</source> </properties> </destination>
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 public class Programme { private int id; public Programme() {} public Programme(int id) { this.id = id; } public int getId() { return id; } public void setId(int id) { this.id = id; } }Dans mon mxml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public class ProgrammeDAO { public List<Programme> getProgrammes() { System.out.println("appel à getProgrammes()"); return Arrays.asList(new Programme(10), new Programme(34)); } }
Mais quand je clique sur "get data", ça ne marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <mx:RemoteObject id="ro" destination="programmeDAO"/> <mx:DataGrid dataProvider="{ro.getProgrammes.lastResult}" width="100%" height="100%"/> <mx:Button label="Get Data" click="ro.getProgrammes()"/>
Avec un sniffeur réseau (wireshark), on peut voir la réponse du serveur :
HTTP/1.1 404 /WebContent/messagebroker/amf
Dans mon navigateur, si je vais sur :
http://localhost:8080/WebContent/messagebroker/amf
j'ai une erreur 404, mais si je vais sur :
http://localhost:8080/NomDuProjet/messagebroker/amf
J'ai une réponse 200 OK.
Tous les paramètres de blazeds sont ceux par défaut. Voici une partie de services-config.xml.
J'ai essayé de remplacer "en dur" {context.root} par LeNomDuProjet, mais il fait toujours la requête sur WebContent...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel"> <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/> </channel-definition>
Dans les propriétés du projet, dans eclipse (menu flex server) :
Root URL : http://localhost:8080/NomDuProjet
Context root : /WebContent
J'ai tenté de modifier la variable "context root" dans les préférences du projet (en la remplaçant par /NomDuProjet), ça n'a pas mieux marché, et maintenant, après avoir remis la valeur initiale (/WebContent), le client ne fait plus aucune requête au serveur (testé avec wireshark)... J'ai donc été obligé de recréer complètement le projet pour qu'il fasse de nouveau des requêtes au serveur...
Mais le serveur répond toujours 404...
Merci d'avance de votre aide...
Partager