Dúvidas e Problemas com meu datatable

1 resposta
vilmar_ferreira

Primeiramente bom dia a todos.

Estou com um problema já faz alguns dias. Não consegui resolver de jeito nenhum, então vim aqui pedir ajuda a vocês.

É o seguinte, estou fazendo uma aplicação e nela uso um datatable para listar os registros do banco de dados. Estou usando o MySQL. No datatable chama o método do meu manegedbean para listar. Ok funciona beleza, mas depois de algumas listagens ocorreu um erro, que é o seguinte:
"#{PessoaView.todos}' Error reading 'todos' on type meupacote.controller.PessoaController"

Na minha aplicação jsp eu tenho um botão chamado listar. Assim que eu clico nele aparece o datatable. quando clico novamente some o datatable. Ou seja aparece apenas quando o usuário desejar. Fiz isso renderizando os objetos no clique do botão.

Neste meu método do manegedbean eu uso datamodel. Já tentei usar um List<> também mas o erro persiste.
O engraçado que ele lista, trabalho tranquilamente, mas chega um momento que da este erro. Adiante passarei os códigos da minha classe DAO e do meu managedbean. E da minha aplicação jsp tbm.

Método List da classe DAO:

public List<Pessoa> todasPessoas() throws SQLException{
		conn = getConnection();
		String sql = "SELECT * FROM ger_pessoas";
		try{
			stm = conn.createStatement();
			rs = stm.executeQuery(sql);
			List<Pessoa> list = new ArrayList<Pessoa>();
			while(rs.next()){
				int identificador = rs.getInt("identificador");
				String rg = rs.getString("rg");
				String municipio = rs.getString("municipio");
				String rgorgaoexp = rs.getString("rgorgaoexp");
				String rgemissao = rs.getString("rgemissao");
				String cpf = rs.getString("cpf");
				String sexo = rs.getString("sexo");
				String titeleitoral = rs.getString("titeleitoral");
				String email = rs.getString("email");
				String endereco = rs.getString("endereco");
				
				list.add(new Pessoa(identificador, rg, municipio, rgorgaoexp, rgemissao, cpf, sexo, titeleitoral, email, endereco));
			}
			return list;
		}catch(SQLException ex){
			return null;
		}
		
		
	}

Método do manegedbean

public DataModel getTodos() throws Exception{
		InterfacePessoa ipes = new PessoaDAO();
		model = new ListDataModel(ipes.todasPessoas());
		return model;
	}

Já tentei usar um List no manegedbean para chamar o método list da classe DAO, mas funciona da mesma maneira:

public List<Pessoa> getAllPessoas() throws Exception{
		InterfacePessoa ipes = new PessoaDAO();
		return ipes.todasPessoas();
		
	}

Agora da aplicação

<h:panelGrid columns="5" styleClass="tabelaBot">
						<h:commandButton value="Cadastrar" rendered="#{PessoaView.botCad}" styleClass="botao" action="#{PessoaView.create}"/>
						<h:commandButton value="Alterar" rendered="#{PessoaView.botAlt}" styleClass="botao" action="#{PessoaView.update}"/>
						<h:commandButton value="Listar" immediate="true" styleClass="botao" action="#{PessoaView.mudaListar}" />
						<a4j:commandButton value="Limpar" styleClass="botao" reRender="painelCadastro" action="#{PessoaView.limpa}"/>
					</h:panelGrid>
											
					<br />
					<br />
			
					<rich:dataTable id="listaCliente" rowClasses="linha_a, linha_b" styleClass="tabela" headerClass="cabecalho"  value="#{PessoaView.todos}" var="item"
					 rendered="#{PessoaView.listar}" cellpadding="2" cellspacing="0">
						<f:facet name="header">
							<h:outputText value="Pessoas Cadastradas"/>
						</f:facet>
						<rich:column>
							<f:facet name="header">
								<h:outputText value="RG"/> 
							</f:facet>
							<h:outputText value="#{item.rg}"/>
						</rich:column>
						<rich:column>
							<f:facet name="header">
								<h:outputText value="Municipio"/> 
							</f:facet>
							<h:outputText value="#{item.municipio}"/>
						</rich:column>
						<rich:column>
							<f:facet name="header">
								<h:outputText value="CPF"/>
							</f:facet>
							<h:outputText value="#{item.cpf}"/>
						</rich:column>
						<rich:column>
							<f:facet name="header">
								<h:outputText value="Sexo"/>
							</f:facet>
							<h:outputText value="#{item.sexo}"/>
						</rich:column>
						<rich:column>
							<f:facet name="header">
								<h:outputText value="E-Mail"/>
							</f:facet>
							<h:outputText value="#{item.email}"/>
						</rich:column>
						<rich:column>
							<f:facet name="header">
								<h:outputText value="Operação"/>
							</f:facet>
						
							<h:commandLink immediate="true" action="#{PessoaView.editar}">
								<h:graphicImage styleClass="link" url="imagens/rtg_rate.gif" title="Alterar"/>
							</h:commandLink>
							&nbsp;&nbsp;
							<a4j:commandLink reRender="listaCliente" action="#{PessoaView.excluir}">
								<h:graphicImage styleClass="link" url="imagens/bRmv.gif" title="Apagar"/>
							</a4j:commandLink>
						
						</rich:column>
			
					</rich:dataTable>
					
			
				</h:form>

Desde já agradeço pela atenção e paciência.

1 Resposta

vilmar_ferreira

Erro inteiro:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: /teste.jsp(135,5) #{PessoaView.todos}’ Error reading ‘todos’ on type meupacote.controller.PessoaController

javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)

org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)

org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)

org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)

org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)

root cause

org.apache.jasper.el.JspELException: /teste.jsp(135,5) #{PessoaView.todos}’ Error reading ‘todos’ on type meupacote.controller.PessoaController

org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:107)

javax.faces.component.UIData.getValue(UIData.java:582)

org.ajax4jsf.component.UIDataAdaptor.getValue(UIDataAdaptor.java:1624)

org.ajax4jsf.component.SequenceDataAdaptor.getDataModel(SequenceDataAdaptor.java:65)

org.ajax4jsf.component.SequenceDataAdaptor.createDataModel(SequenceDataAdaptor.java:59)

org.richfaces.component.UIDataTable.createDataModel(UIDataTable.java:121)

org.ajax4jsf.component.UIDataAdaptor.getExtendedDataModel(UIDataAdaptor.java:621)

org.ajax4jsf.component.UIDataAdaptor.setRowKey(UIDataAdaptor.java:339)

org.ajax4jsf.component.UIDataAdaptor.iterate(UIDataAdaptor.java:1017)

org.ajax4jsf.component.UIDataAdaptor.encodeAjaxChild(UIDataAdaptor.java:496)

org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:146)

org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:83)

org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:157)

org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:83)

org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:157)

org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:83)

org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:157)

org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:83)

org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:157)

org.ajax4jsf.renderkit.AjaxContainerRenderer.encodeAjax(AjaxContainerRenderer.java:123)

org.ajax4jsf.component.AjaxViewRoot.encodeAjax(AjaxViewRoot.java:680)

org.ajax4jsf.component.AjaxViewRoot.encodeChildren(AjaxViewRoot.java:551)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)

com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:245)

com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:176)

org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)

org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)

com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)

com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)

com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)

org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)

org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)

org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)

org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)

root cause

java.lang.NullPointerException

classes.PessoaDAO.todasPessoas(PessoaDAO.java:84)

meupacote.controller.PessoaController.getTodos(PessoaController.java:61)

sun.reflect.GeneratedMethodAccessor224.invoke(Unknown Source)

sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

java.lang.reflect.Method.invoke(Unknown Source)

javax.el.BeanELResolver.getValue(BeanELResolver.java:62)

javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)

com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)

org.apache.el.parser.AstValue.getValue(AstValue.java:118)

org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)

org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)

javax.faces.component.UIData.getValue(UIData.java:582)

org.ajax4jsf.component.UIDataAdaptor.getValue(UIDataAdaptor.java:1624)

org.ajax4jsf.component.SequenceDataAdaptor.getDataModel(SequenceDataAdaptor.java:65)

org.ajax4jsf.component.SequenceDataAdaptor.createDataModel(SequenceDataAdaptor.java:59)

org.richfaces.component.UIDataTable.createDataModel(UIDataTable.java:121)

org.ajax4jsf.component.UIDataAdaptor.getExtendedDataModel(UIDataAdaptor.java:621)

org.ajax4jsf.component.UIDataAdaptor.setRowKey(UIDataAdaptor.java:339)

org.ajax4jsf.component.UIDataAdaptor.iterate(UIDataAdaptor.java:1017)

org.ajax4jsf.component.UIDataAdaptor.encodeAjaxChild(UIDataAdaptor.java:496)

org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:146)

org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:83)

org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:157)

org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:83)

org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:157)

org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:83)

org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:157)

org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:83)

org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:157)

org.ajax4jsf.renderkit.AjaxContainerRenderer.encodeAjax(AjaxContainerRenderer.java:123)

org.ajax4jsf.component.AjaxViewRoot.encodeAjax(AjaxViewRoot.java:680)

org.ajax4jsf.component.AjaxViewRoot.encodeChildren(AjaxViewRoot.java:551)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)

com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:245)

com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:176)

org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)

org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)

com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)

com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)

com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)

org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)

org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)

org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)

org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.
Apache Tomcat/6.0.18

Criado 27 de abril de 2010
Ultima resposta 27 de abr. de 2010
Respostas 1
Participantes 1