Duvida em um selectonemenu

Pessoal estou com uma duvida em um selectonemenu …
Pois quero que o mesmo retorne para uma tela na qual será escolhida o acesso do usuario ( em qual )
Será que alguem pode me ajudar ?
Vou postar os codigos …

[code]public class UsuarioMB {

private Usuario usuario;
private List usuarios;
private List selectItems;

public List<Usuario> getUsuarios() {
    return usuarios;
}

public List<SelectItem> getSelectItems() {
    return selectItems;
}

public void setSelectItems(List<SelectItem> selectItems) {
    this.selectItems = selectItems;
}

public void setUsuarios(List<Usuario> usuarios) {
    this.usuarios = usuarios;
}

/** Creates a new instance of UsuarioMB */
public UsuarioMB(){ 
        
this.usuario=new Usuario();

// carregaVaras();
fillSelectItems();
}

public Usuario getUsuario() {
    return usuario;
}

public void setUsuario(Usuario usuario) {
    this.usuario = usuario;
}

public String excluir() {
    UsuarioDAO uDAO = new UsuarioDAO();
    try {
        uDAO.deletar(usuario);
        JSFUtil.setaMensagemInfo("Exclusão efetuada com sucesso");

// listar();

    } catch (Exception ex) {
        JSFUtil.setaMensagemInfo("Erro na exclusão: " + ex.getMessage());

    }
    return null;

}
public String limpar() {
    usuario = new Usuario();
    
    return null;
}

public String listar(){
UsuarioDAO uDAO = new UsuarioDAO();

usuarios=uDAO.listar();
uDAO.getConexao().close();
return "listar";

}
public String buscar(){

return "buscar";

}

     public String cadastrar(){
         UsuarioDAO uDAO=new UsuarioDAO();
    
   
    
    if (usuario.getNomeUsuario().equals(""))
 {
        usuario.setNomeUsuario(null);
 }
    try 
{
     uDAO.inserirEditar(usuario);
     limpar();
     JSFUtil.setaMensagemInfo("Cadastro/Edição efetuado com sucesso!");
    
     uDAO.getConexao().close();
}    catch (Exception e) {
     JSFUtil.setaMensagemError("Erro no cadastro: "+e.getMessage());
     uDAO.getConexao().getTransaction().rollback();
}
    return null;
}
  
     private void fillSelectItems() {
   carregaVaras();       

}

private void carregaVaras()
{
UsuarioDAO uDAO = new UsuarioDAO();

    selectItems = new ArrayList<SelectItem>();

   selectItems.add(new SelectItem(null,"[Selecione]"));
    for (Usuario u : uDAO.listarVara()) {

        selectItems.add(new SelectItem(u.getCodUsuario(),u.toString()));
        
    }
}

public List listarVaras(){

UsuarioDAO udao=new UsuarioDAO();
Usuario u = new Usuario();
if (u.getAtributos().equals(‘0’)){
return udao.listarVara();

}
return udao.listar();

}

}[/code]

[code]public class UsuarioDAO extends GenericDAO<Usuario, Integer> {

public Class getEntityClass() {
    return Usuario.class;
}

 public Usuario autenticaLogin(Usuario usuario) throws Exception {
   
        Query dynaquery = super.getConexao().createQuery("FROM Usuario u Where u.login=:param1");
        dynaquery.setParameter("param1", usuario.getCodUsuario());
       

        usuario=(Usuario)dynaquery.getSingleResult();

        return usuario;
    



}
 
public List<Usuario> listarVara() {

    Query dynaQuery = getConexao().createQuery("FROM Usuario where vara is not null ");
    return dynaQuery.getResultList();
}

}[/code]

[code]Usuário


<h:selectOneMenu id=“usuario_return” value="#{usuarioMB.usuario.vara}">
<f:selectItems value="#{usuarioMB.selectItems}" />
                            </h:selectOneMenu>

                             </td>
                            </tr>
                      </td>

[/code]
StackTrace

se alguem puder me ajudar … desde já sou grato …

O erro que dá é …

[quote]javax.servlet.ServletException: Servlet execution threw an exception
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
[/quote]

Utilizando JPA 1.0 e JSF 1.2

Certamente vc gerou suas entidades pelo netbeans… o NB gera namedQueries, anotações em cima de cada entidade, é como se fosse as queries mais comuns que podem ser utilizadaspor vc, tipo um findbyId, select * from, etc…

Pois bem, qdo vc sobe sua aplicação essas queries são validadas; o que certamente houve, foi que o NB gerou as queries e atributos e vc renomeou algum atributo da entidade mas nao observou que alguma namedQuerie fazia referência a este atributo, verifique isto.

[]s

Sim foi o netbeans que gerou automaticamente …
Mas eu não mudei o nome de nada … está tudo como ele mesmo criou …
Ou seja nenhum atributo foi renomeado…nem o atributo de uma entidade …

Inclusive foi o dao e bean foram gerado logo apos do netbeans gerar automaticamente a class …

Será que alguem pode me ajudar ?
Desde já …Obrigado …

A raiz da exceção é um erro relacionado ao hibernate. Você já testou seus DAOs?

Sim cara … testei todos os meus DAOS …

olhando seu stack tenho a impressão que o problema está na configuração de alguma dentro desse método. Talvez o persistense, não sei. Dá uma olhada de perto nele ou manda o código aqui para o fórum.

Método: br.jus.jfba.utils.jpa.dao.GenericDAO.getConexao(GenericDAO.java:53)

Tô chutando essa solução pra ver se acende uma luz no fim do túnel.

[code]public abstract class GenericDAO <T, ID extends Serializable> {

public GenericDAO() {

}

 public abstract Class<T> getEntityClass();


public T inserirEditar(T vo) {

    EntityTransaction tx = getConexao().getTransaction();

    if (!tx.isActive()) {
        tx.begin();
    }

    vo = getConexao().merge(vo);



    if (tx.isActive()) {
        tx.commit();
    }

    return vo;

}


public EntityManager getConexao() {
    return JPAUtil.getEntityManager();
}


public void deletar(T vo) throws Exception {
    try {
        EntityTransaction tx = getConexao().getTransaction();

        if (!tx.isActive()) {
            tx.begin();
        }

        vo = getConexao().merge(vo);

        getConexao().remove(vo);

        if (tx.isActive()) {
            tx.commit();
        }

    } catch (Exception ex) {
        ex.printStackTrace();
        if (ex.getCause() instanceof ConstraintViolationException) {
            throw new ConstraintViolationException(null, null, null);
        }
    }

}


public T buscar(ID id) {

    T entidade = getConexao().find(getEntityClass(), id);

    return entidade;

}

public List<T> listar() {

    Query dynaQuery = getConexao().createQuery("FROM " + getEntityClass().getName());
    return dynaQuery.getResultList();
}

}[/code]

marlonmca postei a class genericDAO

O erro mudou …
Agora é :[quote]javax.servlet.ServletException: Expected a child component type of UISelectItem/UISelectItems for component type javax.faces.SelectOne(usuario_vara). Found null.
javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)[/quote]

quando eu refiz o persistence … o faces-config e depois de eu seguir o que vi no forum que era uma instrução de criar um construtor cheio e um vazio …

agora ele para nesse erro … alguem pode me ajudar ?

Meu mb agora ficou … [code]public class UsuarioMB {

private Usuario usuario;
private List usuarios;
private List selectItems;
/** Creates a new instance of UsuarioMB */

public UsuarioMB(){}
public UsuarioMB(Usuario usuario){

this.usuario=new Usuario();

// carregaVaras();
fillSelectItems();
}

public Usuario getUsuario() {
    return usuario;
}

 public List<Usuario> getUsuarios() {
    return usuarios;
}

public List<SelectItem> getSelectItems() {
    return selectItems;
}

public void setSelectItems(List<SelectItem> selectItems) {
    this.selectItems = selectItems;
}



public void setUsuarios(List<Usuario> usuarios) {
    this.usuarios = usuarios;
}
public void setUsuario(Usuario usuario) {
    this.usuario = usuario;
}

public String excluir() {
    UsuarioDAO uDAO = new UsuarioDAO();
    try {
        uDAO.deletar(usuario);
        JSFUtil.setaMensagemInfo("Exclusão efetuada com sucesso");

// listar();

    } catch (Exception ex) {
        JSFUtil.setaMensagemInfo("Erro na exclusão: " + ex.getMessage());

    }
    return null;

}
public String limpar() {
    usuario = new Usuario();
    
    return null;
}

public String listar(){
UsuarioDAO uDAO = new UsuarioDAO();

usuarios=uDAO.listar();
uDAO.getConexao().close();
return "listar";

}
public String buscar(){

return "buscar";

}

     public String cadastrar(){
         UsuarioDAO uDAO=new UsuarioDAO();
    
   
    
    if (usuario.getNomeUsuario().equals(""))
 {
        usuario.setNomeUsuario(null);
 }
    try 
{
     uDAO.inserirEditar(usuario);
     limpar();
     JSFUtil.setaMensagemInfo("Cadastro/Edição efetuado com sucesso!");
    
     uDAO.getConexao().close();
}    catch (Exception e) {
     JSFUtil.setaMensagemError("Erro no cadastro: "+e.getMessage());
     uDAO.getConexao().getTransaction().rollback();
}
    return null;
}
  
    private  void fillSelectItems() {

// carregaVaras();
UsuarioDAO uDAO = new UsuarioDAO();

   selectItems = new ArrayList<SelectItem>();

   selectItems.add(new SelectItem(null,"[Selecione]"));
    for (Usuario u : uDAO.listar()) {

        selectItems.add(new SelectItem(u.getCodUsuario(),u.toString()));
        
    }

}

// private void carregaVaras()
// {
// UsuarioDAO uDAO = new UsuarioDAO();
//
// select = new ArrayList();
//
// select.add(new SelectItem(null,"[Selecione]"));
// for (Usuario u : uDAO.listarVara()) {
//
// select.add(new SelectItem(u.getCodUsuario(),u.toString()));
//
// }
// }

public List listarVaras(){

UsuarioDAO udao=new UsuarioDAO();
Usuario u = new Usuario();
if (u.getAtributos().equals(‘0’)){
return udao.listarVara();

}
return udao.listar();

}}[/code]

Passe uma string vazia ao invés de null no selectItens

private void carregaVaras()   
{  
        UsuarioDAO uDAO = new UsuarioDAO();  
  
        selectItems = new ArrayList<SelectItem>();  
  
                                //aqui
       selectItems.add(new SelectItem("","[Selecione]"));  
        for (Usuario u : uDAO.listarVara()) {  
  
            selectItems.add(new SelectItem(u.getCodUsuario(),u.toString()));  
              
        }  
    }  

Ah, recomendo usar PostConstruct;

Meu caro ErickRAR o erro ainda continua …
O mesmo erro …