2014-10-31 135 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豆。