我确实有一个EJBs,我可以将它注入到其他ActionService中,它工作得很好。
现在我创建了另一个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。我不明白为什么
发布于 2017-04-26 15:44:17
您应该将库作为ejbModule引入到ear文件中,这样容器就可以搜索jar文件并部署它,并在需要的时候注入它
发布于 2017-11-22 20:43:46
ActionService有一个带有@local注解的接口,如果这是一个类,它必须有@LocalBean注解。
(这是为了能够在运行时访问它的实例)
如果它是一个接口,并且如果它有多个实现,那么你将不得不使用@EJB (beanName = "nameOfImplementation")来引用你需要的实现,如果它是一个类,其中@LocalBean被用来使用@EJB (name = "nameEjb")
与带有@LocalBean的@Local类的接口
在具有多个实现的聚合类接口中@EJB(beanName="nameOfImplementation")类@EJB(name="nameEjb")
注意:使用@Local和测试实现ActionService的接口注意: add trace控制台日志以了解类是否被初始化为ejb:ActionService
发布于 2016-02-28 17:08:43
https://stackoverflow.com/questions/33545256
复制相似问题