Boa tarde pessoal, estou a dias ralando para utilizar JPA 2, JSF 2 no Glassfish V3. O problema é acredito que estou fazendo de forma errada a utilizacao do JPA. A injeção do meu DAO funcionava somente na primeira página, para tratar isso criei um managedbean com escopo de aplicação, dentro dele coloquei meu dao:
@Named(value="aplicacao")
@ApplicationScoped
public class Aplicacao implements Serializable{
public static final long serialVersionUID = 5L;
@Inject
private DaoUsuario daoUsuario;
public static Aplicacao getAplicacao(){
Aplicacao aplicacao = null;
try{
FacesContext fc = FacesContext.getCurrentInstance();
aplicacao = (Aplicacao) fc.getApplication().getExpressionFactory().createValueExpression(fc.getELContext(),"#{aplicacao}", Aplicacao.class).getValue(fc.getELContext());
}catch(Exception ex){
ex.printStackTrace();
}
return aplicacao;
}
/** Creates a new instance of Aplicacao */
public Aplicacao() {
}
/**
* @return the daoUsuario
*/
public DaoUsuario getDaoUsuario() {
return daoUsuario;
}
/**
* @param daoUsuario the daoUsuario to set
*/
public void setDaoUsuario(DaoUsuario daoUsuario) {
this.daoUsuario = daoUsuario;
}
}
Acredito, ou tenho quase certeza, que isso não passa de uma gambiarra, e, claro, tá chovendo “session is Closed !” e LazyInitializationException.
Alguém poderia me dar uma dica de implementar corretamente este Dao’s ?