-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。 –