2017-08-24 1 views
1

J'ai un sessionScoped ManagedBean dans mon projet JSF 2.2 et je voudrais invoquer une autre ManagedBean comme @ManagedProperty Ceci est mon premier sessionScoped haricot:JSF ManagedProperty NullPointerException

public class MainWorkerMB implements Serializable { 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 1L; 


    @ManagedProperty("#{fragmentHandlerMB}") 
    private FragmentHandlerMB fragmentHandlerMB; 

    public FragmentHandlerMB getFragmentHandlerMB() { 
     return fragmentHandlerMB; 
    } 

    public void setFragmentHandlerMB(FragmentHandlerMB fragmentHandlerMB) { 
     this.fragmentHandlerMB = fragmentHandlerMB; 
    } 

    public void search() { 

     fragmentHandlerMB.changeFrag("search_result.xhtml" , "Result Page" , -1); 

    } 

Ceci est mon autre bean c'est aussi sessionScoped:

@ManagedBean(eager=true) 
@SessionScoped 
public class FragmentHandlerMB implements Serializable { 

@PostConstruct 
    public void init() { 
     log.info("constructed.."); 
     // other code parts // 

    } 

    public FragmentHandlerMB() { 
     super(); 
    } 

public void changeFrag(String fragToOpen, String fragToOpenName, int pageIndex) { 

//... 

} 
} 

Après que lorsque je tente d'invoquer ma méthode de haricot secound i a NullPointerException:

Caused By: java.lang.NullPointerException 
    at com.kebodev.managed.MainWorkerMB.search(MainWorkerMB.java:29) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    Truncated. see log file for complete stacktrace 

Donc, il semble que mon haricot n'existe pas.

Pouvez-vous m'aider? Merci!

Répondre

1

Je l'ai résolu, en supprimant toute configuration <managed-bean> dans faces-config.xml et ajouter @ManagedBean @SessionScoped anotation à mes deux ManagedBean.