1 и JSF 2.0 + простые лица, что круто: D
И у меня есть этот валидатор, но я не могу правильно ввести в него блок персистентности.
Все остальные бины работают нормально, это единственный, который не работает, он дает мне Nullpointer на roleFacade
Это незаконно вводить в валидаторе? это слишком рано в жизненном цикле? что это может быть?
Спасибо!
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
@FacesConverter("rolesConverter")
@Stateless
public class RolesConverter implements Converter{
@EJB
private RoleFacade roleFacade;
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
Roles role = null;
if ((value != null) && (!value.equals(""))) {
role = roleFacade.find(Long.valueOf(value));
}
return role;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
Integer retorno = null;
if (!(value == null)) {
Roles role = new Roles();
role = (Roles) value;
retorno = role.getId();
}
return retorno.toString();
}
}
И Фасад
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.PersistenceContextType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Stateless
public class RoleFacade extends AbstractFacade<Roles> {
@PersistenceContext(unitName = "br.com.cflex.itm-PU", type= PersistenceContextType.TRANSACTION)
private EntityManager em;
private static Logger log = LoggerFactory.getLogger(RoleFacade.class);
@Override
protected EntityManager getEntityManager() {
return em;
}
public RoleFacade() {
super(Roles.class);
}
public RoleFacade(EntityManager em) {
super(Roles.class);
this.em = em;
}
public List<Roles> getListOfRoles(){
log.debug("Calling method 'RoleFacade: List getListOfRoles()'");
List<Roles> list = getEntityManager().createNamedQuery("Roles.findAll").getResultList();
return list;
}
}