<h:head><title>SistemadeStock</title><title>CadastrodeFornecedores</title></h:head><h:body><h2><h:outputTextvalue="Fornecedores"/></h2><hr/><h:form><f:validateBean><h:messages/><h:panelGridcolumns="2"><h:outputTextvalue="Id"rendered="#{fornecedorBean.fornecedores.idFornecedor!=null}"/><h:inputTextvalue="#{fornecedorBean.fornecedores.idFornecedor}"rendered="#{fornecedorBean.fornecedores.idFornecedor!=null}"/><h:outputTextvalue="Nome"/><h:inputTextvalue="#{fornecedorBean.fornecedores.nome}"/><h:outputTextvalue="Id"rendered="#{produtoBean.produtos.idProduto!=null}"/><h:inputTextvalue="#{produtoBean.produtos.idProduto}"rendered="#{produtoBean.produtos.idProduto!=null}"/><h:outputTextvalue="Produto"/><h:inputTextvalue="#{produtoBean.produtos.descProduto}"/><h:outputTextvalue="Id"rendered="#{marcaBean.marcas.idMarca!=null}"/><h:inputTextvalue="#{marcaBean.marcas.idMarca}"rendered="#{marcaBean.marcas.idMarca!=null}"/><h:outputTextvalue="Marca"/><h:inputTextvalue="#{marcaBean.marcas.descMarca}"/><h:outputTextvalue="Id"rendered="#{tipoProdutoBean.tipoProdutos.idTipoProduto!=null}"/><h:inputTextvalue="#{tipoProdutoBean.tipoProdutos.idTipoProduto}"rendered="#{tipoProdutoBean.tipoProdutos.idTipoProduto!=null}"/><h:outputTextvalue="TipoProduto"/><h:inputTextvalue="#{tipoProdutoBean.tipoProdutos.descTipoProduto}"/><h:commandButtonvalue="Gravar"action="#{fornecedorBean.grava}"/></h:panelGrid></f:validateBean></h:form><h2><h:outputTextvalue="Lista de Fornecedores"/></h2><hr/><h:dataTablevalue="#{fornecedorBean.fornecedores}"var="fornecedor"><h:column><f:facetname="header"><h:outputTextvalue="ID"/></f:facet>#{fornecedor.id}
</h:column><h:column><f:facetname="header"><h:outputTextvalue="Nome"/></f:facet>#{fornecedor.nome}
</h:column><h:column><f:facetname="header"><h:outputTextvalue="Produto"/></f:facet>#{fornecedor.produto.descProduto}
</h:column><h:column><f:facetname="header"><h:outputTextvalue="Marca"/></f:facet>#{fornecedor.produto.marca.descMarca}
</h:column><h:column><f:facetname="header"><h:outputTextvalue="Tipo de Produto"/></f:facet>#{fornecedor.produto.tipoProduto.descTipoProduto}
</h:column><h:column><f:facetname="header"><h:outputTextvalue="Ações"/></f:facet><h:form><h:commandLinkvalue="Remover"action="#{fornecedorBean.remove}"><f:setPropertyActionListenervalue="fornecedor"target="#{fornecedorBean.fornecedor}"/></h:commandLink>|
<h:commandLinkvalue="Alterar"><f:setPropertyActionListenervalue="#{fornecedor}"target="#{fornecedorBean.fornecedor}"/></h:commandLink></h:form></h:column></h:dataTable></h:body>
aqui esta o meu bean
@ViewScoped@ManagedBeanpublicclassFornecedorBeanimplementsSerializable{privatestaticfinallongserialVersionUID=1L;privateFornecedorfornecedor=newFornecedor();privateList<Fornecedor>fornecedores;@ManyToManyprivateProdutoproduto;publicProdutogetProduto(){returnproduto;}publicvoidsetProduto(Produtoproduto){this.produto=produto;}publicFornecedorgetFornecedor(){returnfornecedor;}publicvoidsetFornecedor(Fornecedorfornecedor){this.fornecedor=fornecedor;}publicList<Fornecedor>getFornecedores(){/*EntityManager em = new JPAUtil().getEntityManager(); em.getTransaction().begin(); DaoFornecedor dao = new DaoFornecedor(em); if(fornecedores == null){ fornecedores = dao.lista(); } em.getTransaction().commit(); em.close();*/returnfornecedores;}publicvoidsetFornecedores(List<Fornecedor>fornecedores){this.fornecedores=fornecedores;}publicvoidgrava(){EntityManagerem=newJPAUtil().getEntityManager();em.getTransaction().begin();DaoFornecedordao=newDaoFornecedor(em);dao.adicionaTodos(fornecedor);this.fornecedores=dao.lista();em.getTransaction().commit();em.close();}publicvoidremove(){EntityManagerem=newJPAUtil().getEntityManager();em.getTransaction().begin();DaoFornecedordao=newDaoFornecedor(em);if(fornecedor.getIdFornecedor()==null){dao.grava(fornecedor);}else{dao.atualiza(fornecedor);}em.getTransaction().commit();em.close();}privatevoidlimpaGrid(){this.fornecedor=newFornecedor();}
Tem muita coisa errada:
1) fornecedorBean.fornecedores.nome => não se navega assim em coleções. Você teria que ter 1 objeto do tipo fornecedor e fazer fornecedorBean.fornecedore.nome.
2) Target Unreachable, 'fornecedores' returned null é por que o seu getFornecedores está retornando null. Você tem que fazer algo do tipo:
então, eu estava tentando pegar de uma lista mas como vc me alertou não era possível então passei a pergar de "fornecedor" que é do "Fornecedor" viz assim...
ai eu estava recebendo esse erro, eu vi em um post aqui mesmo no GUJ que era porque estava configurando o meu mbean no config e na anotação porém eu só estou usando anotação
saca só, eu vi um pessoal aqui no GUJ que tiveram o mesmo problema e eles não tiveram uma resposta... de todo modo eu consegui corrigir os erros acima mas porém ainda estou com problemas abaixo vo colocar o codigo se puderem dar uma olhada ficarei feliz...
essa é a tela que o tomcat traz no browser
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: java.lang.ExceptionInInitializerError
javax.faces.webapp.FacesServlet.service(FacesServlet.java:325)
root cause
javax.faces.el.EvaluationException: java.lang.ExceptionInInitializerError
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
javax.faces.component.UICommand.broadcast(UICommand.java:315)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
e esse é no console
[quote]Exception in thread "main" java.lang.ExceptionInInitializerError
at br.com.tcc.teste.TesteInsere.main(TesteInsere.java:21)
Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named controleestock
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
at br.com.tcc.infra.JPAUtil.(JPAUtil.java:12)
... 1 more
@RequestScoped@ManagedBeanpublicclassFornecedorBean{privateFornecedorfornecedor=newFornecedor();privateList<Fornecedor>fornecedores;publicvoidgrava(){DAO<Fornecedor>dao=newDAO<Fornecedor>(Fornecedor.class);dao.lista();if(fornecedor==null){fornecedor=newFornecedor();System.out.println("Gravando a fornecedor");this.fornecedor=newFornecedor();}}publicvoidremove(){System.out.println("Removendo a fornecedor");}publicFornecedorgetFornecedor(){returnfornecedor;}publicvoidsetFornecedor(Fornecedorfornecedor){this.fornecedor=fornecedor;}publicList<Fornecedor>getFornecedores(){System.out.println("Listando os fornecedores");this.fornecedor=newFornecedor();returnfornecedores;}privatevoidlimpaFormularioDoJSF(){this.fornecedor=newFornecedor();}}
xhtml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"xmlns:f="http://java.sun.com/jsf/core"xmlns:h="http://java.sun.com/jsf/html"><f:viewcontentType="text/html"/><h:head><title>Sistema de Stock</title><title>Cadastro de Fornecedores</title></h:head><h:body><h2><h:outputTextvalue="Fornecedores"/></h2><hr/><h:form><f:validateBean><h:messages/><h:panelGridcolumns="2"><h:outputTextvalue="Id"rendered="#{fornecedorBean.fornecedor.idFornecedor!=null}"/><h:inputTextvalue="#{fornecedorBean.fornecedor.idFornecedor}"rendered="#{fornecedorBean.fornecedor.idFornecedor!=null}"/><h:outputTextvalue="Nome"/><h:inputTextvalue="#{fornecedorBean.fornecedor.nome}"/><h:outputTextvalue="Marca"/><h:inputTextvalue="#{fornecedorBean.fornecedor.marca}"/><h:outputTextvalue="produto"/><h:inputTextvalue="#{fornecedorBean.fornecedor.produto}"/><h:outputTextvalue="Tipo de Produto"/><h:inputTextvalue="#{fornecedorBean.fornecedor.tipoProduto}"/><h:commandButtonvalue="Gravar"action="#{fornecedorBean.grava}"/></h:panelGrid></f:validateBean></h:form><h2><h:outputTextvalue="Lista de Fornecedores"/></h2><hr/><h:dataTablevalue="#{fornecedorBean.fornecedores}"var="fornecedor"><h:column><f:facetname="header"><h:outputTextvalue="ID"/></f:facet>
#{fornecedor.id}
</h:column><h:column><f:facetname="header"><h:outputTextvalue="Nome"/></f:facet>
#{fornecedor.nome}
</h:column><h:column><f:facetname="header"><h:outputTextvalue="Produto"/></f:facet>
#{fornecedor.produto}
</h:column><h:column><f:facetname="header"><h:outputTextvalue="Marca"/></f:facet>
#{fornecedor.marca}
</h:column><h:column><f:facetname="header"><h:outputTextvalue="Tipo de Produto"/></f:facet>
#{fornecedor.tipoProduto}
</h:column><h:column><f:facetname="header"><h:outputTextvalue="Ações"/></f:facet><h:form><h:commandLinkvalue="Remover"action="#{fornecedorBean.remove}"><f:setPropertyActionListenervalue="fornecedor"target="#{fornecedorBean.fornecedor}"/></h:commandLink> |
<h:commandLinkvalue="Alterar"><f:setPropertyActionListenervalue="#{fornecedor}"target="#{fornecedorBean.fornecedor}"/></h:commandLink></h:form></h:column></h:dataTable></h:body></html>
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"xmlns:f="http://java.sun.com/jsf/core"xmlns:h="http://java.sun.com/jsf/html"><f:viewcontentType="text/html"/><h:head><title>Sistema de Estoque</title></h:head><h:body><h:form><h:panelGridcolumns="1"><h:outputTextvalue="Página do sistema de Estoque"/><h:commandLinkaction="#{menuBean.fornecedores}"value="Cadastra Fornecedores"/><h:commandLinkaction="#{menuBean.listaFornecedores}"value="Lista de Fornecedores"/><h:commandLinkaction="#{menuBean.listaTodos}"value="Lista Tudo"/></h:panelGrid></h:form></h:body></html>