JSF ManagedProperty NullPointerException

У меня есть sessionScoped ManagedBean в моем проекте JSF 2.2, и я хотел бы вызвать другой ManagedBean как @ManagedProperty Это мой первый компонент sessionScoped:

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);

    }

Это мой другой боб, это тоже 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) {

//...

}
}

После этого, когда я пытаюсь вызвать свой метод второго компонента, я получаю 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

Так что похоже, что моего боба не существует.

Вы можете помочь мне? Спасибо!


person solarenqu    schedule 24.08.2017    source источник


Ответы (1)


Я решил это, удалив всю конфигурацию <managed-bean> в faces-config.xml и добавив @ManagedBean @SessionScopedanotation к моим обоим ManagedBean.

person solarenqu    schedule 24.08.2017