简体   繁体   English

托管bean EJB注入

[英]managed bean EJB injection

i'm having many managed beans and was wondering if i could create a UtilClass where i put my services calls (@EJB). 我有很多托管bean,想知道是否可以创建UtilClass来放置服务调用(@EJB)。 I've already tried it but i'm having a NullPointerException. 我已经尝试过了,但是我遇到了NullPointerException。 this is how my UtilClass and my managed bean look like: 这就是我的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;
  }
}

I would suggest you to do the following, since apparently you are having a lot of services and want to have them grouped together, you can create an " abstract " bean and make your managed bean extend such " abstract " bean, in this way you can access the EJB's in a structural and safe way, the following code will explain what I mean: 我建议您执行以下操作,因为显然您拥有很多服务,并且希望将它们组合在一起,所以可以创建一个“ 抽象 ” 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 "";

    }
}

Please refer to JavaEE5 EJB FAQ if you need to clarify more concepts on the matter. 如果需要澄清有关此问题的更多概念,请参考JavaEE5 EJB FAQ

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM