2014-10-31 226 views
0

我在Wildfly應用程序服務器中正確部署了一個EJB。我可以使用@EJB註釋來注入它,但是現在我想包裝到一個cdi bean中以便能夠使用@Inject註釋注入它。爲此,我創建了一個類ResourceProducer,它使用@EJB注入EJB,然後將其包裝到一個cdi bean中。CDI依賴注入問題

下面是代碼:

public class ResourceProducer { 

@EJB 
BusinessHandler businessHandler; 



@Produces 
@Named("myBusinessHandler") 
public BusinessHandler getMyBusinessHandler() { 
    return businessHandler; 
} 
} 

然後在注射點我注入使用

@Inject 
@Named("myBusinessHandler") 
private BusinessHandler handler; 

但是Eclipse是告訴我豆「無豆可享有注射到注射點[ JSR-299§5.2.1]「。我做錯了什麼?你看到我失蹤的東西嗎?任何幫助,將不勝感激。

謝謝!

+2

只是好奇:您可以通過'@Inject'直接注入EJB,爲什麼包裝? – 2014-10-31 10:06:25

回答

2

嘗試將以下代碼注入到CDI bean中。

ResourceProducer.java

@Named 
@SessionScoped // or some other scope 
public class ResourceProducer { // Your CDI Bean 
    @Inject 
    BusinessHandler businessHandler; 
} 

您的EJB
BusinessHandler.java

@Stateless 
public class BusinessHandler(){ // Your EJB 
    ... 
} 

這就是你應該做的注入一個EJB到CDI豆。