私はEJBをSpring(3.1.2)サービスに注入しようとしています(両方とも異なるWARで)両方とも非常に単純です(例を単純化するためにメソッドが削除されています):
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パスを含めたいと思います。
@EJB(lookup = MyBean.JNDI_NAME)
private MyBean myBean;