Pergunta

Estou tendo muitos beans gerenciados e queria saber se poderia criar um UtilClass onde eu colocar minhas chamadas de serviços (@EJB).Já tentei, mas estou tendo um NullPointerException. é assim que meu UtilClass e meu bean gerenciado se parecem:

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;
  }
}
Foi útil?

Solução

Eu sugiro que você faça o seguinte, já que aparentemente você está tendo muitos serviços e deseja agrupá-los, você pode criar um bean " abstrato " e estender seu bean gerenciadotal bean " abstrato ", desta forma você pode acessar os EJB's de uma forma estrutural e segura, o código a seguir irá explicar o que quero dizer:

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 "";

    }
}

Consulte JavaEE5 EJB FAQ se precisar esclarecer maisconceitos sobre o assunto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top