IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flex Discussion :

Flex et BlazeDS, ça ne marche pas : où est l'erreur?


Sujet :

Flex

  1. #1
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <destination id="programmeDAO">
        <properties>
            <source>test.ProgrammeDAO</source>
        </properties>
    </destination>
    Voici mes classes java de test :
    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;
        }
     
    }
    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));
        }
     
    }
    Dans mon mxml :
    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()"/>
    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 : 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>
    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...

  2. #2
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    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...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 38
    Points : 47
    Points
    47
    Par défaut
    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.

  4. #4
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    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...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 38
    Points : 47
    Points
    47
    Par défaut
    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.

  6. #6
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut
    Ce que tu dois vérifier c'est que ton compilateur Flex compile bien avec l'option "-context-root NomDuProjet"

Discussions similaires

  1. Je ne trouve pas ou est l'erreur dans mon programme
    Par stich51 dans le forum Général Python
    Réponses: 3
    Dernier message: 02/05/2014, 16h36
  2. Je ne sais pas où est l'erreur…
    Par borough dans le forum Scheme
    Réponses: 4
    Dernier message: 24/03/2011, 18h28
  3. [VC#] - Je ne comprends pas ou est mon erreur !
    Par epc dans le forum Windows Forms
    Réponses: 32
    Dernier message: 03/11/2008, 19h10
  4. SPWeb web = site.OpenWeb() -> sa marche pas c'est normal
    Par Dr_shaman dans le forum SharePoint
    Réponses: 1
    Dernier message: 17/06/2008, 11h19
  5. Réponses: 13
    Dernier message: 30/01/2006, 14h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo