EJB إلى مكون SEAM (مشاريع مختلفة ونفس جبوس)
سؤال
ولدي الإعداد التالية:
وجبوس 4.2.3
تحت بأنني:
--> Project A (Wich is not SEAM 2.1.2GA based) EJBs: * beanA (JNDI = beanA/remote) * beanB (JNDI = beanB/remote) --> Project B (SEAM based) EJBs / Components: * ComponentX * ComponentY
في عنصر X لدي قطعة الحالي من التعليمات البرمجية:
@Scope(ScopeType.CONVERSATION)
@Name("ComponentX")
public class ComponentX implements java.io.Serializable {
...
@EJB
beanAInterface beanA;
....
public foo(){
beanA.bar(); // <--------- beanA is null, even with mapped name and etc, only works
// if i direct lookup with Context().lookup("beanA/remote")
}
وأي ideias حول كيفية حل هذا؟
وشكرا مقدما.
و}
المحلول
والطبقة ComponentX لديك ليست EJB، وبالتالي لا يمكنك استخدام الشرحEJB لضخها. لديك بعض الخيارات. تحويل ComponentX لEJB مضيفاStateless أوStatefull واجهةLocal أوRemote، وبهذه الطريقة سوف تلاحظ AS ComponentX هو EJB وسوف نعرف ما يجب القيام به مع حقن المطلوب. والسماح للخيار الآخر ComponentX بأنها مجرد عنصر واستخدام InitialContext # بحث للحصول على الإشارة إلى "beanA / عن بعد" باليد.
لا تنتمي إلى StackOverflow