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 :

Problème dans OpenAMF (Intéraction Flex/Java)


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 5
    Par défaut Problème dans OpenAMF (Intéraction Flex/Java)
    Bonjour,

    Je réalise en Flex un application simple d'authentification qui interagit avec Java.
    Mon problème c'est que tous les champs dans la réponses AMF sont null. La requête AMF par contre prends bien en compte ce qui est transmis par le Flex.
    J'ai un message de type :
    INFO: RESPONSE:
    [AMFBody: {serviceName=null, serviceMethodName=null, response=null, type=UNKNOWN, value=[AMFError: {ASObject[type=null]}]}]

    Voici une partie de mon code Flex :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public function sAuthentifier(event:Event):void
    {
       netConnection.addEventListener("netStatus",netStatusEventHandler);
       netConnection.connect("http://localhost:8080/TP_Java_WEB_4_2/gateway");
       netConnection.call("classes.fr.alti.service.CollaborateurService.authentification", new Responder(seConnecter), login.text, password.text);
    }

    Je ne comprends pas pourquoi la réponse est nulle. Dois je toucher au apenamf-config.xml ?
    Je pense que le problème est un problème de configuration ou le openAMF n'arrive pas à trouver le service. Comment je peux procéder svp pour résoudre ce tracas ?
    Merci beaucoup d'avance pour vos propositions.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Par défaut
    Bonjour,
    Je n'utilise pas les classes NetConnection mais je pense que le problème vient de l'enchainement des deux appels connect et call.
    Flex est par nature asynchrone. Il faut donc attendre d'avoir reçu un événement signifiant la fin de la procédure de connexion avant de faire le call. Voir événement netStatus.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 5
    Par défaut
    Je te remercie de ta réponse.
    L'évenement netStatus est utilisé dans la première instruction.
    Le problème vient du fait que OpenAMF n'arrive pas à instancier le service. Il me lance une erreur "java.lang.InstanciationException".
    La classe du service est bien concrête. Java ne devrais pas me lancer cette erreur, mais apparement OpenAMF n'arrive pas à l'instancier en utilisant la méthode newInstance.
    Je pense que le problème provient plutôt du serveur parce que OpenAMF reçoit bien la requete et trouve le service mais pas de réponse car pas d'instanciation.
    Merci encore une fois pour ta réponse.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Par défaut
    L'évenement netStatus est utilisé dans la première instruction.
    Il n'est pas utilisé, il est ajouté à la liste des listeners.

    Normalement le call devrait se faire après la réception dans le listener netStatusEventHandler d'un statut connecté.

    Peut-être que Java génère cette exception parce qu'il reçoit une requête (du call) alors que la procédure de connexion n'est pas terminée.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 5
    Par défaut
    Je tien à te remercier de ta réponse.
    Au début j'ai utilisé ce code :

    Code javascript : 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
    public function sAuthentifier(event:Event):void
    {
    	netConnection.addEventListener("netStatus",netStatusEventHandler); 
    	netConnection.connect("http://localhost:8080/TP_Java_WEB_4_2/gateway");
    }
     
    public function netStatusEventHandler(e:NetStatusEvent):void
    {
    	if(e.info.code == "NetConnection.Connect.Success")
    	{
    		netConnection.call("fr.alti.service.CollaborateurService.authentification", new Responder(seConnecter), login.text, password.text);	
    	}
    	else if (e.info.code == "NetConnection.Connect.Failed")
    	{
    		Alert.show("Erreur");
    	}
    }

    Mais malheureusement, il ne marche pas. Aucune connexion au serveur.
    Quand quand j'appelle connect et call des suite il y a transfert des variables via AMF au serveur.

    J'avoue que tu as raison sur le fait d'éviter d'enchainer deux instructions de ce type en Flex qui est un langage événementiel.
    C'est vrai qu'il est mieux de faire comme tu dis, mais ça n'a pas marché du tout. J'ai fait autrement (c'est un peu maladroit je sais ), ça marche à moitié.
    Si tu as une façon de faire pour optimiser la première façon de faire (celle d'utiliser le contenu de la variable info.code) je serai reconnaissant.

    Merci pour tout.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Par défaut
    La question est déjà de savoir si tu reçois des événements NetStatus ou pas ?
    et lesquels ?

Discussions similaires

  1. Problème d'un client flex dans Mozilla Firefox
    Par byassir1984 dans le forum Flex
    Réponses: 0
    Dernier message: 07/02/2011, 10h29
  2. Réponses: 1
    Dernier message: 16/06/2010, 19h14
  3. Réponses: 1
    Dernier message: 08/12/2009, 11h23
  4. Problème de retour de méthode (Java/Flex)
    Par Boubec dans le forum Flex
    Réponses: 2
    Dernier message: 13/11/2009, 09h52
  5. Problème dans le paquetage java.util
    Par MaxBomba dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 10/11/2006, 22h45

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