سؤال

ولدي الإعداد التالية:

وجبوس 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 / عن بعد" باليد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top