开发者

java.lang.NullPointerException, when i am inside the constructor of a managed bean invoking methods from other beans

When I am inside the constructor of a managed and trying to reach out to other methods from other beans, I got ja开发者_如何学Pythonva.lang.NullPointerException. Is there some kind of specification that not allow managed bean to do that?

@ManagedProperty(value="#{document}")
private DisplayListController document;

@EJB
DocumentSBean sBean;

public NewUserController() {
    document.list();
} 

Above I just do regular bean injection, nothing fancy. document is a SessionScoped managed bean that has method list() which just return a String. NewUserController is a RequestScoped managed bean.


You should look into @PostConstruct. An example can be found here.

Your properties are not being set when you're trying to access them. You need to wait for them to be set. Bean management typically goes:

  1. Create Beans
  2. Set Properties

You're trying to use properties that have not been set, thus resulting in your NPE.

So your code could change to:

public NewUserController() { }

@PostConstruct
public void init() {
    document.list();
}


DisplayListController should probably be configured to call its own init method with the @PostConstruct annotation on the list method

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜