2011-01-22 48 views
2

我有其定義爲我的PersistenceManager爲空

@Local 
public interface MyPersistenceManagerLocal { 

    public List<PropertyList> getPropertyList(int id); 

} 

和上述接口implentaion類Interface是

@Stateless 
public class MyPersistenceManagerBean implements MyPersistenceManagerLocal { 

    @PersistenceContext(unitName = PersistentSettings.PERSIST_NAME) 
    private EntityManager entityManager; 

    @Override 
    public List<PropertyList> getPropertyList(int id) { 
    System.out.println("inside MyPersistenceManagerBean.getPropertyList()"); 
    ...... 
    ...... 
    ...... 
    } 
} 

和餘馬在另一個呼叫

@Stateless 
public class ClientImpl implements Client { 

    @EJB 
    MyPersistenceManagerLocal persistenceManager; 

    final List<PropertyList> dbList = persistenceManager.getPropertyList(id); 

} 

調用此我得到NullPointerException在

final List<PropertyList> dbList = persistenceManager.getPropertyList(id); 

在調試模式我得到了persistenceManager爲空。

我是新的EJB和JPA無法解決這個問題。任何幫助爲什麼我越來越persistenceManager爲空

回答

3

您正在NPE因爲容器尚未注入所需的bean尚未。 需要設置它@PostConstruct方法即

@Stateless public class ClientImpl implements Client { 

    @EJB MyPersistenceManagerLocal persistenceManager; 

    private List dbList; 
    @PostConstruct 
    public void init(){ 
     dblist = persistenceManager.getDbList(); 
    } 

}

+0

由於馬爾欽,我已寫入最終列表DBLIST = persistenceManager.getPropertyList(ID);在我的一個類的方法,所以我不能保持這個在init()和這個方法是從其他方法調用任何其他方法我應該嘗試嗎? – 2011-01-22 13:46:49