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

JSF Java Discussion :

Erreur "java.lang.NullPointerException with <rich:pickList>"


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 40
    Par défaut Erreur "java.lang.NullPointerException with <rich:pickList>"
    salut tous le monde,

    J'ai encore un problème avec ma <rich:pickList>, j'ai vraiment besoin d'aide.
    en exécutant l'application je reçois un message d'erreur ci-dessous. j'ai débogger l'application et le message s'affiche exactement aprés la méthode selectCompanynamesOption(), l'erreur vient bien de la pickList. j'arrive pas à résoudre le poblème.

    le message d'erreur est le suivant:
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    java.lang.NullPointerException
            at com.sun.facelets.util.FastWriter.write(FastWriter.java:77)
            at com.sun.facelets.StateWriter.write(StateWriter.java:116)
            at com.sun.faces.renderkit.html_basic.HtmlResponseWriter.write(HtmlResponseWriter.java:495)
            at org.richfaces.renderkit.PickListRenderer.encodeItem(PickListRenderer.java:194)
            at org.richfaces.renderkit.PickListRenderer.encodeRows(PickListRenderer.java:152)
            at org.richfaces.renderkit.PickListRenderer.encodeSourceRows(PickListRenderer.java:209)
            at org.richfaces.renderkit.html.PickListRendererGen.doEncodeChildren(PickListRendererGen.jav
    a:344)
            at org.richfaces.renderkit.html.PickListRendererGen.doEncodeChildren(PickListRendererGen.jav
    a:258)
            at org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:121)
            at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
            at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)
            at org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)
            at org.ajax4jsf.renderkit.html.AjaxOutputPanelRenderer.encodeChildren(AjaxOutputPanelRendere
    r.java:79)
            at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
            at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.ja
    va:271)
            at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:242)
            at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
            at javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
            at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
            at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
            at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
            at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
            at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
            at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
            at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
            at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
            at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.jav
    a:411)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j
    ava:317)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
     
            at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
            at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
            at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
            at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
            at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
            at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
            at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
            at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73)
            at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154)
            at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:260)
            at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:366)
            at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:493)
            at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
            at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
            at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
            at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
            at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
            at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
            at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j
    ava:230)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
     
            at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j
    ava:230)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
     
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
            at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:27
    1)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
            at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
            at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProces
    sorTask.java:637)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorT
    ask.java:568)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTas
    k.java:813)
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultRead
    Task.java:341)
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
     
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
     
            at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
            at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106
    )
    le backing bean est lesuivant:
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    @Stateful
    @Name("adminAction")
    @Scope(ScopeType.SESSION)
    public class AdminActionBean implements AdminActionLocal {
     
    @Out(required=false)
       private List<Customer> companyNames;
     
       @Out(required=false)
       private ArrayList<SelectItem> companyNamesOption;
     
       @In(required=false)
       @Out(required=false)
       private List<Long> customersChoice = new ArrayList<Long>();
     
    public void selectCompanyNames(){
           setCompanyNames((List<Customer>) getEm().createQuery("select c from Customer c")
                        .getResultList());
       }
     
       @Factory("companyNamesOption")
       public void selectCompanyNamesOption(){
     
           selectCompanyNames();
           for (int i=0;i <companyNames.size();i++){
               log.info("customers size =#0",companyNames.size());
               if(companyNamesOption== null)
                   companyNamesOption  = new ArrayList<SelectItem>();
               SelectItem item = new SelectItem(companyNames.get(i).getCustomerId(), companyNames.get(i)
    .getCompanyName(), companyNames.get(i).getCompanyName() );
               companyNamesOption.add(item);
               log.info("customers size2 =#0",customers.size());
           }
       }
    ....
    // getter and setter
    ...
    ma page .xhtml est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <rich:pickList id="customersChoice"  value="#{adminAction.customersChoice}">
                        <f:selectItems  value="#{companyNamesOption}" />
                    </rich:pickList>
    Est ce qu'il y a quelqu'un qui peut m'aider

    grand merci

  2. #2
    sup
    sup est déconnecté
    Membre confirmé Avatar de sup
    Profil pro
    Inscrit en
    Août 2004
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 70
    Par défaut
    Salut,
    quelle version de richFaces utilises-tu?

    As-tu remarqué qu'il manque le nom de ton backing bean adminAction dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <f:selectItems  value="#{companyNamesOption}" />
    As-tu egalement crée le getter pour cette ArrayList?

    Tu utilises un scope request ou session pour cette page?

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 40
    Par défaut
    salut

    J'utilise la version 3.2.1 de richfaces que je l'ai téléchargé il y a une semaine à peut près.

    Oui je voie bien que le nom de mon backing bean n'est pas spécifié. Mais si tu voie bien, la proprieté companyNamesOption;est est outjecté (par l'annotation @Out) dans mon Bean, donc il n'est pas nécessaire de le mettre elle est détecté automatiquement.
    Le getter ainsi que le setter sont bien déclaré dans le bean et dans l'interface locale.
    Le scope est bien déclaré par l'annotation @Scope il est en session
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @Stateful
    @Name("adminAction")
    @Scope(ScopeType.SESSION)

  4. #4
    Membre averti
    Inscrit en
    Mars 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 55
    Par défaut
    question idiote mais as tu passé un debug ta méthode selectCompanyNamesOption() peux être que le problème vient de là tout simplement.

    Je dis ca car très souvent quand j'ai un NullPointerException c'est que j'ai oublié d'init une list ou un vector

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 40
    Par défaut
    oui j'ai passé un debug, en effet dès que le débogage dépasse (autrement dit dès qu'il sort ) de la fonction l'exception se déclanche.
    je suis totalement d'accord avec toi, il me semble aussi que l'erreur est idiote surtout que le message est connu comme tu le dit, mais j'arrive pas à la trouver

  6. #6
    Membre averti
    Inscrit en
    Mars 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 55
    Par défaut
    je crois que j'ai trouvé ton erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                   companyNamesOption  = new ArrayList<SelectItem>();
    et bien il est dans ta boucle for... donc à chaque boucle tu refais un new pour rien

    il faudrai plutot faire

    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
     
       public void selectCompanyNamesOption(){
     
           companyNamesOption  = new ArrayList<SelectItem>();
     
           selectCompanyNames();
           for (int i=0;i <companyNames.size();i++){
               log.info("customers size =#0",companyNames.size());
               if(companyNamesOption== null)
     
               SelectItem item = new SelectItem(companyNames.get(i).getCustomerId(), companyNames.get(i)
    .getCompanyName(), companyNames.get(i).getCompanyName() );
               companyNamesOption.add(item);
               log.info("customers size2 =#0",customers.size());
           }
       }

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 31/05/2011, 10h40
  2. Réponses: 2
    Dernier message: 09/09/2008, 22h07
  3. erreur compilation java.lang.NullPointerException
    Par muslim1987 dans le forum JDBC
    Réponses: 6
    Dernier message: 26/06/2008, 09h16
  4. Erreur exception java.lang.NullPointerException
    Par geol99 dans le forum Langage
    Réponses: 2
    Dernier message: 14/06/2007, 20h24
  5. erreur de java.lang.NullPointerException
    Par vince351 dans le forum Langage
    Réponses: 1
    Dernier message: 25/03/2007, 12h29

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