我的dispatcher-servlet.xml基本上有:
<context:component-scan base package="package.ejb" />
<mvc:annotation-driven />
在@Controller类中我有:
@Controller
public class ApplicationController {
@EJB(lookup="java:global/MyEarName/MyWebModuleName/BeanImplementation!package.ejb.morepackages.BeanImplementation")
private MyBeanInterface myBean;
这没有用,看起来Spring没有看到@EJB注释,并且它在部署时发出错误,说它没有找到任何Autowire候选者。所以我添加了以下代码:
@Autowired
@Qualifier("BeanImplementation")
public void setMyBean(MyBeanInterface myBean) {
this.myBean = myBean;
}
关于我的bean实现:
@Component("BeanImplementation")
@Stateless(mappedName = "BeanImplementation", name = "BeanImplementation")
@LocalBean
public class BeanImplementation implements MyBeanInterface {
它有效,但我需要使用EJB的查找字符串,因为Spring没有看到@EJB,所以我不能这样做。我被迫恢复到非Spring应用程序以使用@EJB(lookup =&#34; ...&#34;)。
因此,澄清一个问题:如何使用注释和使用EJB查找字符串在Spring MVC中注入EJB?谢谢。