我有一个名为ActionService
的EJB,我可以将它注入到其他EJB中,这个功能运行良好。
现在我创建了另一个EJB:
@Stateless
public class ActionsPerDateDataSet extends ScriptedDataSetEventAdapter {
@EJB
ActionService actionService;
@Override
public void open(IDataSetInstance dataSet) {
actionService.foo() // However actionService is null here!
}
}
ScriptedDataSetEventAdapter
来自另一个框架(BIRT)。
然而现在我的actionService
总是null
。我不明白为什么。
ActionsPerDateDataset
的呢?是通过@EJB
吗?还是你手动实例化了它(或让BRIT手动实例化)?无论如何,你在哪里尝试访问actionService
? 是在构造函数中吗? - BalusCnew ActionsPerDateDataSet()
会自动设置所有带有依赖注入标注的字段吗?这个手工创建的实例根本不是EJB。只有通过@EJB
获取它时,它才是真正的EJB。所以基本上你试图在一个普通的Java对象中注入一个EJB。 - BalusC