我試圖注入EJB到Spring(3.1.2)服務(無論是在不同的WAR) 兩者都是非常簡單的(方法去除,以簡化的例子):注入EJB 3到Spring Bean的
EJB:
@Remote
public interface MyBean {
}
@Singleton
public class MyBeanImpl implements MyBean{
}
服務:
@Service
public class MyServiceImpl implements MyService{
}
乍一看件事很簡單,但我想:
@EJB(lookup = "java:global/ejbApp/MyBeanImpl!com.my.MyBean")
private MyBean myBean;
而且它沒有工作。然後我也試過:
@EJB(mappedName = "java:global/ejbApp/MyBeanImpl!com.my.MyBean")
private MyBean myBean;
而且
@Resource(mappedName = "java:global/ejbApp/MyBeanImpl!com.my.MyBean")
private MyBean myBean;
但既不工作。
我設法用注入我的EJB:
<jee:jndi-lookup id="myBean" jndi-name="java:global/ejbApp/MyBeanImpl!com.my.MyBean" />
在我的春天配置和服務:
@Autowired
private MyBean myBean;
但我真的不喜歡這種解決方案。我想有一些註釋我JNDI路徑能夠做到e.g:
@EJB(lookup = MyBean.JNDI_NAME)
private MyBean myBean;
謝謝託梅克:)這「以某種方式」解決了我的問題。我正在瞄準一些更簡單的解決方案,但如果我不能用一個註釋來解決它,我會盡力。我認爲在Spring中注入EJB真的很容易(畢竟它是標準的))。 –
由於沒有人回答,所以將我的評論轉到了答案。 –