Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flex
Flex Forum d'entraide sur la programmation Adobe Flex : applications Internet riches (RIA)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/04/2008, 16h24   #1
Membre Expert
 
Avatar de ®om
 
Inscription : janvier 2005
Messages : 2 801
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 801
Points : 2 371
Points : 2 371
Par défaut Flex et BlazeDS, ça ne marche pas : où est l'erreur?

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 :
Code :
1
2
3
4
5
<destination id="programmeDAO">
    <properties>
        <source>test.ProgrammeDAO</source>
    </properties>
</destination>
Voici mes classes java de test :
Code :
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;
    }
 
}
Code :
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));
    }
 
}
Dans mon mxml :
Code :
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()"/>
Mais quand je clique sur "get data", ça ne marche pas.

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.
Code :
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>
J'ai essayé de remplacer "en dur" {context.root} par LeNomDuProjet, mais il fait toujours la requête sur WebContent...

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...
®om est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 16h34   #2
Membre Expert
 
Avatar de ®om
 
Inscription : janvier 2005
Messages : 2 801
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 801
Points : 2 371
Points : 2 371
Après un deuxième essai de passer context-root à "NomDuProjet", ça marche !

Bizarre...
Soit le context-root doit être WebContent, auquel cas il y a un bug lors du déploiement ;
Soit le context-root doit être LeNomDeLApplication, auquel cas il devrait avoir cette valeur par défaut lors de la création du projet...
®om est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2008, 10h00   #3
Membre du Club
 
Inscription : mars 2007
Messages : 36
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2007
Messages : 36
Points : 40
Points : 40
Le context-root doit tout simplement être le nom de contexte de ton application, puisque c'est là que se trouverons toutes tes classes, c'est normal qu'il n'y ai rien sur http://localhost:8080/WebContent/messagebroker/amf, tu n'as aucun projet avec WebContent comme nom de contexte je suppose

Donc en général, oui, c'est le même nom que l'application, mais c'est modifiable, donc je pense qu'Eclipse met WebContent par défaut pour dire "chemin d'accès aux ressources Web de l'appli", et c'est à changer par le nom de contexte de ton application.
Sthocs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2008, 11h40   #4
Membre Expert
 
Avatar de ®om
 
Inscription : janvier 2005
Messages : 2 801
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 801
Points : 2 371
Points : 2 371
En fait WebContent est le répertoire local dans lequel se trouve tout ça
Mais une fois déployé, il n'y a plus de WebContent...
®om est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2008, 13h14   #5
Membre du Club
 
Inscription : mars 2007
Messages : 36
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2007
Messages : 36
Points : 40
Points : 40
Ouep je sais, mais là encore, ça s'appelle WebContent parce que tu as créé ton projet web avec Eclipse et qu'il met ce nom par défaut, ce n'est pas obligatoire de le nommer comme ça.
Sthocs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2008, 17h55   #6
Membre confirmé
 
Inscription : mars 2004
Messages : 366
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 366
Points : 285
Points : 285
Ce que tu dois vérifier c'est que ton compilateur Flex compile bien avec l'option "-context-root NomDuProjet"
ZeKiD est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h46.


 
 
 
 
Partenaires

Hébergement Web