我在Wildfly应用程序服务器中正确部署了EJB。我可以使用@EJB注释来注入它,但是现在,我想包装到一个cdi-bean中,以便能够使用@inject注释来注入。为此,我创建了一个类ResourceProducer,它使用@EJB注入EJB,然后将其封装到一个cdiBean中。
这是代码:
public class ResourceProducer {
@EJB
BusinessHandler businessHandler;
@Produces
@Named("myBusinessHandler")
public BusinessHandler getMyBusinessHandler() {
return businessHandler;
}
}
然后在注入点,我使用注入bean
@Inject
@Named("myBusinessHandler")
private BusinessHandler handler;
然而Eclipse告诉我"没有任何bean可以被注入到注入点[JSR-299§5.2.1]"。我做错了什么?你看到我遗漏的东西了吗。如有任何帮助,我们将不胜感激。
谢谢!!
尝试以下代码将EJB注入CDIBean。
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注入CDIBean所需要做的全部工作。