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

NetBeans Java Discussion :

[Visual Web] VWP - problème d'accès au SessionBean à partir d'un autre Thread


Sujet :

NetBeans Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 29
    Points : 29
    Points
    29
    Par défaut VWP - problème d'accès au SessionBean à partir d'un autre Thread
    Bonjour,

    Je développe avec NetBeans 5.5 et le VWP une application comprenant des phases de chargement assez longues entre 2 pages ( accès aux bbdd)

    J'ai donc eu besoin de développer une petite page de chargement.

    Voila ma mèthode :

    1. Page 1 : A l'action du bouton de validation , je crée un nouveau Thread dont la mèthode run contient le traitement long... Pendant ce temps la page 1 se dirige vers une autre page de chargement

    2.Page chargement : animation d'une barre de chargement... A la fin de l'execution du thread créé précédemment un bouton "suivant" est rendu activable, celui-ci renvoie à la page2.

    3 ... Affichage des résultats


    Pour le moment je me suis contenté de programmer un modèle "bidon" avec un sleep au lieu du chargement :

    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
    20
    21
    22
    23
    24
     
        public String button1_action() {
            // TODO: Process the action. Return value is a navigation
            // case name where null will return to the same page.
     
            new Thread(){
                public void run() {
                    System.out.println("is running");
     
                    try{
                        Thread.sleep(duree);
                    } catch(Exception e){
                        System.out.println("erreur sleep");
                    }
                    System.out.println("finished running");
                    getSessionBean1().setFini(true);
     
                }
     
            }.start();
     
     
            return "vers_page_chargement";
        }

    Or l'instruction getSessionBean1().setFini(true); me renvoie l'erreur suivante :
    Exception in thread "Thread-192"
    java.lang.NullPointerException

    Quelqu'un sait-il pourquoi le sessionbean n'est pas accéssible depuis le thread crée?? (cette même instruction fonctionne correctement hors du thread)

    Y-a-til une erreur théorique dans ma méthode?? ( je suis inexperimenté dans l'usage des Thread.... et du dvpmt Web en Java tout court d'ailleurs)

    PS : Je sais que ce setFini(true) en fin de code n'est pas le moyen le plus "propre" de savoir qu'un Thread a terminé son éxécution mais ca me servait surtout pour tester l'accès au SessionBean dont j'ai grandement besoin dans mon traitement réel.

    Merci d'avance!!!

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 29
    Points : 29
    Points
    29
    Par défaut
    Me revoila ....

    Bon, bah au final j'ai trouvé une solution "de dépannage" à mon problème.
    Pour contourner le fait que le Thread crée dans ma page n'avait pas accès à la SessionBean j'ai implémenté une classe " MonThread extends Thread ", contenant un champ SessionBean1 et redefinissant le constructeur avec comme paramètre d'entrée une SesionBean1... Ainsi mon "Thread principal" (ma premeier page...) instancie cette classe en envoyant getSessionBean1() ( vu que depuis ce thread principal ca marche...) le constructeur de monThread definit alors son propre champ SessionBean1 avec celui recu ... et à l'execution ca marche!

    Ceci dit, le mystère de la non-accèssibilité décrit dans le message précédent reste entier .. si quelqu'un à un tuyau à me refiler la dessus, je suis preneur.

  3. #3
    Expert confirmé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Points : 4 740
    Points
    4 740
    Par défaut
    Merci pour ton analyse. Pour le pb de thread je suis largué, désolé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2012] Problème d'accès à un cube à partir d'Excel 2013
    Par annedeblois dans le forum SSAS
    Réponses: 1
    Dernier message: 24/07/2014, 18h13
  2. [Débutant] Problème d'accès à un objet à partir d'un thread
    Par ILP dans le forum C#
    Réponses: 3
    Dernier message: 07/12/2012, 23h50
  3. Réponses: 1
    Dernier message: 04/10/2007, 16h35
  4. Réponses: 10
    Dernier message: 17/11/2006, 15h20
  5. problème d'accèes à firebird sà partir d'un client
    Par vbcasimir dans le forum Connexion aux bases de données
    Réponses: 2
    Dernier message: 10/05/2005, 08h36

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