java - 将 CDI bean 注入 EJB (weblogic 10)
问题描述
我NullPointerException
在尝试将 CDI bean 注入 EJB 时遇到了问题。
我的ejb是
@Stateless(mappedName = "myEjb")
@TransactionManagement(TransactionManagementType.CONTAINER)
public class MyEjb implements MyEjbLocal, MyEjbRemote {
private static final Logger logger = Logger.getLogger(MyEjb .class);
@Inject
@Named("myService")
private MyService myService;
public MyEjb () {
}
public MyEjb (MyService myService) {
this.myService= myService;
}
@PostConstruct
public void postConstruct() {
logger.info("Injected myService" + myService+ " into this " + this);
}
实际上myService
总是为空。这是我myService
使用 CDI 和工厂进行初始化的方法
@ApplicationScoped
public class ServiceFactory {
private MyService myService;
@Inject
@Named("myDao")
private MyDao dao;
@PostConstruct
public void afterCreate() {
myService= new MyServiceImpl(dao);
}
@Produces
@ApplicationScoped
@Named("myService")
public MyService myService() {
return myService;
}
}
而且MyService
只是没有注释
public class MyServiceImpl implements MyService {
private final MyDao myDao;
public MyServiceImpl(MyDao dao) {
this.myDao = dao;
}
好吧,如果我调用 EJB,那么myService
总是null
......我错过了什么?(bean.xml
有没有)
我是否错过了交互 ejb/cdi 周围的东西?
解决方案
推荐阅读
- javascript - setTimeout 在第三次调用时覆盖了我的代码
- gps - 如何使用 arduino 将以太网模块连接到 gps 模块
- python - 运行诗歌失败,出现 /usr/bin/env: 'python': No such file or directory
- javascript - 我如何在一个“IF”javascript中编写多个“OR”
- javascript - 优化 EmEditor 宏以进行元素拆分、排序、从最早到最长的日期和提取
- xml - Office 2019 功能区中的切换按钮
- parquet - 将镶木地板文件摄取到着陆区
- laravel - 如何正确配置自定义错误页面
- excel - 遍历 400 列中的所有排列 20 列
- pandas - 删除页眉和页脚