托管bean EJB注入

时间:2011-05-05 19:55:12

标签: jsf ejb managed-bean converters

我有很多托管bean,并且想知道我是否可以在i中创建一个UtilClass 把我的服务电话(@EJB)。我已经尝试过但我有一个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;
  }
}

1 个答案:

答案 0 :(得分:1)

我建议您执行以下操作,因为显然您有很多服务并希望将它们组合在一起,您可以创建一个“ abstract ”bean并使您的托管bean扩展这样的“ abstract ”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