Boa noite meus amigos, estou tentando transformar uma aplicacao JSP que funcionava para uma aplicacao JSF, para um trabalho de faculdade, aproveitei as classes mais genericas como dao, controller, model e atualizei as views para funcionarem com JSF, porem nao consigo acessar a pagina que devia trazer uma lista de produtos do banco de dados e exibir em uma tabela via JSF. o erro e o seguinte:
message java.lang.NullPointerException description The server encountered an internal error that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: java.lang.NullPointerException org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) root cause java.lang.NullPointerException javax.faces.webapp.UIComponentClassicTagBase.setJspId(UIComponentClassicTagBase.java:1856) org.apache.jsp.ListaProdutos_jsp._jspx_meth_f_005fview_005f0(ListaProdutos_jsp.java:226) org.apache.jsp.ListaProdutos_jsp._jspService(ListaProdutos_jsp.java:193) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) note The full stack trace of the root cause is available in the Apache Tomcat/7.0.56 logs.
a pagina em questao e a seguinte:
> <%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <html> <head> <title>Lista de Produtos</title> </head> <body> <f:view> <div id="tabela"> <h1>Lista de Produtos</h1> <h:form> <h:dataTable value="#{produtosView.todos}" var="item" border="1" cellpadding="2" cellspacing="0" styleClass="tabela" headerClass="cabecalho" rowClasses="linha_a, linha_b"> <f:facet name="header"> <h:outputText value="Mostrar Produtos"/> </f:facet> <h:column> <f:facet name="header"> <h:outputText value="Codigo"/> </f:facet> <h:commandLink action="#{produtosView.editar}" value="#{item.codigo}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Marca"/> </f:facet> <h:outputText value="#{produtosView.marca}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Tipo"/> </f:facet> <h:outputText value="#{produtosView.tipo}" converter="convertDate"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Categoria"/> </f:facet> <h:outputText value="#{produtosView.categoria}" converter="convertDate"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Valor"/> </f:facet> <h:outputText value="#{produtosView.valor}" converter="convertDate"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Excluir Produto"/> </f:facet> <h:commandLink action="#{produtosView.excluir}" value="Excluir"/> </h:column> </h:dataTable> <h:commandLink action="#{produtosView.novoProduto}" value="Cadastrar novo Produto"/> </h:form> </div> <br> </f:view> </body> </html>
A classe produtosView chama metodos da classe produtosController, segue codigo dela:
> package controller;
>
> import dao.InterProdutosDAO;
> import dao.ProdutoDAO;
> import dao.ProdutoDAOException;
> import javax.faces.model.DataModel;
> import javax.faces.model.ListDataModel;
>
> import model.Produto;
> import dao.*;
>
> public class ProdutosController {
> private Produto produto;
> private DataModel model;
>
> public String novoProduto() {
> this.setProduto(new Produto());
> return "novo";
> }
>
> /**
> * @return the produto
> */
> public Produto getProduto() {
> return produto;
> }
>
> /**
> * @param produto the produto to set
> */
> public void setProduto(Produto produto) {
> this.produto = produto;
> }
>
> public DataModel getTodos() throws ProdutoDAOException {
> InterProdutosDAO idao = new ProdutoDAO();
> model = new ListDataModel(idao.listaProdutos());
> return model;
> }
>
> public Produto getProdutoFromEditOrDelete() {
> Produto produto = (Produto)model.getRowData();
> return produto;
> }
>
> public String editar() {
> Produto produto = getProdutoFromEditOrDelete();
> setProduto(produto);
> return "editar";
> }
>
> public String update() throws ProdutoDAOException {
> InterProdutosDAO idao = new ProdutoDAO();
> idao.atualizarProduto(produto);
> return "sucesso_atu";
> }
>
> public String excluir() throws ProdutoDAOException {
> InterProdutosDAO idao = new ProdutoDAO();
> Produto produto = getProdutoFromEditOrDelete();
> idao.excluirProduto(produto);
> return "sucesso_exc";
> }
>
> public String create() throws ProdutoDAOException {
> InterProdutosDAO idao = new ProdutoDAO();
> idao.salvarProduto(produto);
> return "sucesso_ins";
> }
> }
Alguem saberia me nortear sobre o porque desse erro acontecer? Peco desculpas se for alguma pergunta trivial/erro bobo, estou iniciando em JSP/JSF. Desde ja agradeco a ajuda!