Tp_Proxy restaurer()

Conception de logiciels Intranet : patrons et canevas

Modérateurs : Douin, graffion

StevenW
Messages : 14
Inscription : 11 mars 2017 8:29

Tp_Proxy restaurer()

Message par StevenW » 17 mars 2017 22:32

Bonjour à tous,

Voilà, la méthode restaurer() ne renvoie aucune réponse lorsque j'exécute sa requête Http interne.

Code : Tout sélectionner

Connexion connexion = new Connexion(this.url, "nom=" + this.nom + "&commande=restaurer");
boolean resultatLocal = liste.restaurer();
String resultatDistant = connexion.result(); --> renvoie null
Donc cela veut dire que tout se passe localement? J'ai créé une méthode privée sauvegarder() dans la classe ListeImpl qui fait une sauvegarde de l'ArrayList liste dans un fichier à chaque appel de ajouter(), retirer() et vider(). La méthode restaurer() récupère bien évidemment la liste depuis ce fichier.
Avez vous procédez ainsi car j'ai un échec au niveau de JNews pour cette méthode.

Cordialement,

Steven.

Douin
Messages : 219
Inscription : 18 mars 2009 15:46

Re: Tp_Proxy restaurer()

Message par Douin » 18 mars 2017 11:32

Bonjour,

Vous devez "restaurer" , restituer la liste initiale, précédemment sauvegardée, une idée serait d'obtenir la liste distante par un appel de toString puis d'extraire les éléments un à un, à l'aide d'une instance de StringTokenizer ou Scanner par exemple

Bonne restitution

StevenW
Messages : 14
Inscription : 11 mars 2017 8:29

Re: Tp_Proxy restaurer()

Message par StevenW » 18 mars 2017 21:01

Bonjour et merci pour votre réponse,

Oui c'est ce j'ai fait et au final après avoir ajouter l'élément "VI", les deux toString() locale et distante affiche bien "[I, II, III, IV, V, VI]", mais j'ai toujours un échec :

Code : Tout sélectionner

There was 1 failure:
1) test_restaurer(question1): exception inattendue ! restaurer
Voici mon code :

Code : Tout sélectionner

public boolean restaurer() {
        Connexion connexion = new Connexion(this.url, "nom=" + this.nom + "&commande=toString");
        String resultatDistant = connexion.result();
        StringTokenizer st = new StringTokenizer(resultatDistant, "[, ]");
        int tailleListeDistante = st.countTokens();
        while(st.hasMoreTokens()) {
            String elt = st.nextToken();
            this.liste.ajouter(elt);
        }        
        boolean resultatLocal = this.liste.taille() == tailleListeDistante;       
        if(!resultatLocal) {
            throw new CoherenceListeException("restaurer");
        }
        return resultatLocal;
  }
Cordialement,

Steven.

Douin
Messages : 219
Inscription : 18 mars 2009 15:46

Re: Tp_Proxy restaurer()

Message par Douin » 19 mars 2017 10:59

Bonjour,

Attention à l'ajout qui également ajoute à la liste distante...

Bon dimanche

saulnierJp
Messages : 23
Inscription : 27 déc. 2016 13:06

Re: Tp_Proxy restaurer()

Message par saulnierJp » 20 mars 2017 0:22

Personnellement, je n'y suis pas parvenu, je ne comprends pas...

J'ai fait ceci:

Code : Tout sélectionner

    /**
     * restauration complete de la liste reelle a partir de la derniere sauvegarde
     */
    public boolean restaurer()
    {
        String parametres = "nom=" + this.nom + "&commande=restaurer";
        Connexion connexion = new Connexion(this.url, parametres);
        connexion.result(); // execution à distance de la restauration

        // on appelle la liste distante
        parametres = "nom=" + this.nom + "&commande=toString";
        connexion = new Connexion(this.url, parametres);
        String resultatDistant = connexion.result(); // le resultat de la connexion

        // execution locale de la restauration
        liste.restaurer();

        // Si la liste distante restauree est differente de la liste locale restauree, on renvoie false
        if (!resultatDistant.equals(liste.toString())) {
            return false;
        }

        // sinon true
        return true;
    }
Ca me paraissait bon. Je restaurais la liste distante, puis la liste locale, et enfin je comparais les deux toString(). En local, c'est parfait. Je restaure correctement, et quand j'appelle l'url distante, c'est bien la liste restaurée + le nouvel élément rajouté. Mais sur jnews, j'ai "pas de restauration ???"

Je ne vois pas où ça peut bloquer...

C'est quasiment trop tard à présent, mais si quelqu'un voit où est le souci... thanks!

Jean-Pierre

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité