injeção EJB de bean gerenciado
-
29-10-2019 - |
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;
}
}
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