1

私は多くの管理された Bean を持っており、サービス呼び出し (@EJB) を置く UtilClass を作成できるかどうか疑問に思っていました。すでに試しましたが、NullPointerException が発生しています。これは、私の UtilClass とマネージド Bean がどのように見えるかです。

public class UtilClass{
@EJB
private static MyFirstEjbLocal myFirstService;
@EJB
private static  MySecondEjbLocal mySecondService;
//other services
//getters

 }


public class MyManagedBean{
   public String myMethod(){

   UtilClass.getMyFirstService.doSomethingInDB();

   return null;
  }
}
4

1 に答える 1

1

どうやら多くのサービスがあり、それらをグループ化したいので、次のことをお勧めします。「抽象」Beanを作成し、マネージドBeanにそのような「抽象」Beanを拡張させることができます。構造的かつ安全な方法で EJB にアクセスできます。次のコードは、私が何を意味するかを説明します。

public class MyAbstractBean{
  @EJB
  protected MyFirstEjbLocal myFirstService;
  @EJB
  protected  MySecondEjbLocal mySecondService;
  // All your other EJB's here
  ...
  // All other variables and methods you could need
}


public class MyManagedBean
   extends MyAbstractBean{

    public String myMethod1(){

      myFirstService.doSomethingInDB();
      return "";

    }

    public String myMethod2(){

      mySecondService.doSomethingInDB();
      return "";

    }
}

この問題に関するより多くの概念を明確にする必要がある場合は、 JavaEE5 EJB FAQを参照してください。

于 2011-05-05T20:11:43.227 に答える