-1
嗨我有一个问题,注入一个普通的Java类(Pojo类)到EJB bean。CDI无法注入pojo java类。 (类型Pojo的不满意的依赖性与限定条件@Default)
@ApplicationScoped
public class DomainRouteFinderService {
@Inject
private Pojo pojo;
private AtomicInteger sequencer;
@PostConstruct
private void init(){
sequencer = new AtomicInteger();
sequencer.lazySet(0);
}
@Produces
@Named("sequencer")
public String getText(){
return "Number: "+ sequencer.getAndIncrement();
}
}
POJO类:
public class Pojo {
}
在我的多项目中包含结构:
根 - 耳
- EJB
- 网络
Web模块依赖于ejb。
在Web模块的beans.xml豆发现模式=“所有”
CDI是为每个模块单独配置的,就是这样。您不要将另一个beans.xml添加到ejb模块中,插入Pojo的唯一方法是使用'@ Dependent'注释对其进行注释 - 这是默认范围CDI bean,但您需要明确以便CDI认为您的POJO作为一个bean,没有额外的beans.xml。如果你不能修改你的Pojo,你可以为它创建一个CDI制作者。 – OndrejM
所以我的解决方案可以吗? – KamilJ
你真的需要部署为EAR吗?您现在可以在WAR文件内部署您的EJB。 –