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

Spring Java Discussion :

NullPointerException en spring.


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 68
    Par défaut NullPointerException en spring.
    Bonjour,
    Je reçois une exception NPE quand je redémarre tomcat. Je sais exactement quel object évalue à null (c'est une variable d'instance d'un objet de scope session) mais je ne sais pas pourquoi il n'est pas réinstancié par Spring et réinjecté dans l'objet de portée session.

    Voici le code dans la classe session-scoped SuggestionOeuvreView qui lance un NPE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        private Sculpture _suggererSculpture() {
            log.debug("_suggererSculpture");
            log.debug("Etat de la liste: " + this.sculpturesNonVisitees);
            if (!this.sculpturesNonVisitees.isEmpty() && this.sculpturesNonVisitees.peek() != null) {
                Integer idSculptureSuggeree = this.sculpturesNonVisitees.pollFirst();
                this.sculpturesNonVisitees.addLast(idSculptureSuggeree);
                log.debug("jbmService: " + jbmService);
                return jbmService.findByID(idSculptureSuggeree);//jbmService est null!!
            } else {
                log.error("Probleme dans _suggererSculpture");
                return null;//todo
            }
        }
    Voici le code concernant l'instanciation de la variable qui devient null. (toujours dans la même classe):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    private transient JbmService jbmService;
     
    @Autowired
        public SuggestionOeuvreView(JbmService jbmService) {
            log.debug("SuggestionOeuvreView()");
            this.jbmService = jbmService;
            this.sculpturesNonVisitees = recupererSculpturesNonVisitees();
        }
     
        @Autowired
        public void setJbmService(JbmService jbmService) {
            this.jbmService = jbmService;
        }

    Voici le code de la classe request-scoped AccueilView qui a comme variable d'instance la variable SuggestionOeuvreView.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     @Autowired
        @ScopedProxy
        public void setSuggestionOeuvreView(SuggestionOeuvreView suggestionOeuvreView) {
            log.debug("setSuggestionOeuvreView");
            this.suggestionOeuvreView = suggestionOeuvreView;
        }
    Pour info j'utilise JSF 1.2, Tomcat 6.0.18, Spring 2.5.5, Spring Java Config.

    Quelqu'un peut-il m'aider svp?

    Merci d'avance,

    Julien.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 43
    Par défaut Peut-être
    Salut,

    Je ne sais pas si ca va régler tout tes problèmes mais essaye de placer l'annotation devant la propriété et pas devant les getters setters contructeurs

    Il faut t'assurer que le fichier de configuration spring soit bien écrit, donc si tu pouvais le placer dans ton prochain message on pourra peut-etre trouver quelque chose.

    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 68
    Par défaut
    Merci pour ta réponse,
    J'ai déjà essayé de déplacer les annotation devant les propriétés et non devant les setters mais ça ne change rien. Voici le xml de configuration de spring. Note aussi que j'utilise javaconfig pour configurer les classes en question.
    Julien.

    p.s. désolé pour le "SOS" et merci de l'avoir enlevé.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 43
    Par défaut Souvenirs souvenirs
    Salut,

    Si mes souvenirs sont bons je pense qu'il manque <context:annotation-config/> dans ta conf...

    Tiens moi au courant.

    PS : C'est quoi ton histoire de SOS ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 68
    Par défaut
    Merci,
    J'ai essayé d'ajouter <context:annotation-config/> dans mon fichier de configuration mais cela ne donne rien. Note que tout fonctionne très bien mis à part le problème énoncé ci-dessus. Je voudrais juste qu'il réinstancie mon JbmService et il ne le fait pas...
    Julien.

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par balteo Voir le message
    Merci,
    J'ai essayé d'ajouter <context:annotation-config/> dans mon fichier de configuration mais cela ne donne rien. Note que tout fonctionne très bien mis à part le problème énoncé ci-dessus. Je voudrais juste qu'il réinstancie mon JbmService et il ne le fait pas...
    Julien.
    possibilité :

    plusieurs instances de SuggestionOeuvreView coexistent et celle qui est utilisée n'est pas celle qui est "wired" par Spring…

    => tracez TOUS les constructeurs des classes incriminées pour éliminer cette possibilité.…

Discussions similaires

  1. Spring mvc Test Controller NullPointerException
    Par sabfix dans le forum Spring
    Réponses: 0
    Dernier message: 10/09/2014, 09h55
  2. Réponses: 3
    Dernier message: 04/08/2014, 17h45
  3. java.lang.NullPointerException + jsf + spring
    Par Tlili2014 dans le forum Spring
    Réponses: 1
    Dernier message: 30/04/2014, 14h02
  4. Spring @autowired et NullPointerException
    Par velocity dans le forum Spring
    Réponses: 13
    Dernier message: 13/07/2012, 16h51
  5. Réponses: 2
    Dernier message: 16/01/2012, 12h13

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