ADVERTÊNCIA: java.lang.NullPointerException[RESOLVIDO]

8 respostas Resolvido
jsfjava
aeciocleysson

Boa Noite

Estou estudando Java Web e me deparei com esse problema que não estou conseguindo resolver. alguém poderia me dar uma luz onde estou errando?

segue a tela do codigo e dos erros.

Essa é a classe Domain

@SuppressWarnings("serial")

@Entity
public class Estado extends GenericDomain {

@Column(length = 2, nullable = false)
private String sigla;

@Column(length = 100, nullable = false)
private String nome;

public String getSigla() {
	return sigla;
}

public void setSigla(String sigla) {
	this.sigla = sigla;
}

public String getNome() {
	return nome;
}

public void setNome(String nome) {
	this.nome = nome;
}

}

Essa é a Classe Bean

package br.com.mega.bean;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import org.omnifaces.util.Messages;

import br.com.mega.domain.Estado;

@SuppressWarnings(serial)

@ManagedBean

@ViewScoped

public class EstadoBean implements Serializable {
private Estado estado;

public Estado getEstado() {
	return estado;
}

public void setEstado(Estado estado) {
	this.estado = estado;
}

/* Metodo para criar um novo estado */
public void novo() {
	estado = new Estado();
}

// Método para salvar
public void salvar() {
	Messages.addGlobalInfo("Estado" + estado.getNome() + estado.getSigla());
}

}

Esse é o código da tela

<?xml version="1.0" encoding="ISO-8859-1" ?>

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p=“http://primefaces.org/ui"
xmlns:ui=“http://java.sun.com/jsf/facelets"
template=”/templates/modeloSistema.xhtml”>

<ui:define name="menuLateral">
	<ui:include src="/includes/menuPrincipal2.html" />
</ui:define>

<ui:define name="conteudo">

	<p:growl id="mensagem" />
	<h:form>
		<!-- Painel com a listagem dos estados cadastrados -->
		<p:panel header="Estado - Listagem">

			<!-- Tabela -->
			<p:dataTable emptyMessage="Nenhum registro encontrado."
				paginator="true">

				<!-- cabeçalho -->
				<f:facet name="header">
					<p:commandButton value="Novo" actionListener="#{estadoBean.novo}"
						icon="ui-icon-plusthick"
						oncomplete="PF('dialogoCadastro').show();" />
				</f:facet>

				<!-- Colunas -->
				<p:column headerText="Nome">
				</p:column>

				<p:column headerText="Sigla">
				</p:column>

				<p:column headerText="Opções">
				</p:column>

			</p:dataTable>

		</p:panel>


		<!-- Dialogo para cadastro -->

		<p:dialog header="Cadastro - Estado" widgetVar="dialogoCadastro"
			draggable="false" resizable="false" modal="true" appendTo="@(body)">

			<h:form>

				<h:panelGrid columns="2">
					<p:outputLabel value="Nome: " />
					<p:inputText maxlength="100" size="30"
						value="#{estadoBean.estado.nome}" />

					<p:outputLabel value="Sigla: " />
					<p:inputText maxlength="2" size="5"
						value="#{estadoBean.estado.sigla}" />
				</h:panelGrid>

				<h:panelGrid columns="2">
					<p:commandButton value="Salvar" icon="ui-icon-check"
						process="@this" actionListener="#{estadoBean.salvar}"
						update=":mensagem" />
					<p:commandButton value="Cancelar"
						oncomplete="PF('dialogoCadastro').hide();" icon="ui-icon-cancel" />
				</h:panelGrid>

			</h:form>

		</p:dialog>

	</h:form>

</ui:define>

<ui:define name="rodape">
</ui:define>

</ui:composition>

Se eu coloca somente uma mensagem no Messages.addGlobalInfo e clicar no botão salva, ele me mostra a mensagem normal, mas se eu pedir para mostrar o que foi digitado no inputText ai já me da esse erro abaixo

mar 15, 2018 8:01:29 PM com.sun.faces.application.view.ViewScopeManager <init>
INFORMAÇÕES: CDI @ViewScoped bean functionality unavailable

mar 15, 2018 8:01:29 PM com.sun.faces.lifecycle.InvokeApplicationPhase execute

ADVERTÊNCIA: java.lang.NullPointerException

javax.el.ELException: java.lang.NullPointerException

at org.apache.el.parser.AstValue.invoke(AstValue.java:260)

at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)

at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:149)

at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)

at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:814)

at javax.faces.component.UICommand.broadcast(UICommand.java:300)

at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)

at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1526)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1482)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Unknown Source)

Caused by: java.lang.NullPointerException

at br.com.mega.bean.EstadoBean.salvar(EstadoBean.java:34)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

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

at org.apache.el.parser.AstValue.invoke(AstValue.java:247)

 32 more
mar 15, 2018 8:01:29 PM com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError

GRAVE: java.lang.NullPointerException

at br.com.mega.bean.EstadoBean.salvar(EstadoBean.java:34)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

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

at org.apache.el.parser.AstValue.invoke(AstValue.java:247)

at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)

at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:149)

at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)

at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:814)

at javax.faces.component.UICommand.broadcast(UICommand.java:300)

at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)

at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1526)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1482)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Unknown Source)

8 Respostas

staroski

Onde é que você inicializado o atributo estado?

É muita sacanagem postar imagens ao invés do código.

Posta o código, seleciona ele é clica no botão </>.

aeciocleysson

Desculpa o vacilo já corrigui a postagem com os códigos.

na verdade eu estou digitando o inputText e estou tentando exibir na tela o que foi digitado para mim ter certeza que esta exibindo o que digito no inputText, não estou gravando ainda no banco somente tentando mostrar o que esta sendo digitado.

FabioSaid

ok

staroski

No método salvar() do EstadoBean você tenta chamar métodos do objeto estado.
Onde você inicializou esse objeto?

Mike
Solucao aceita

Boa tarde, há dois probleminhas:
1)Você tem dois forms, um no dialog e outro na pagina em sí.
Solução: Põem o dialog fora do form

<h:form>

</h:form>

<p:dialog>
    <h:form>

    </h:form>
</p:dialog>

2)O seu botão salvar processa apenas ele
Solução:
Primeiro passo: De um id ao panelgrid dos campos
Segundo passo: No botão salvar, processa o próprio botao e o panelgrid separados por espaço. Você pode processar os dois campos no lugar do panelgrid, mas terá que dar id a eles

<p:commandButton value="Salvar" process="@this idPanelGrid" />
 OU
<p:commandButton value="Salvar" process="@this idCampoNome idCampoSigla" />
aeciocleysson

deu certo aqui, valeu pela ajuda.

aeciocleysson

ele inicializa no DAO do estado, mas eu certo aqui o problema estava na tela de visão que eu tinha colocado o dialogo dentro do form. valeu pela ajuda

Mike

Qualquer coisa estamos ae :slight_smile:
Se a minha resposta te ajudou, considere marcar como “Solução” para ajudar também os outros
Obrigado

Criado 15 de março de 2018
Ultima resposta 16 de mar. de 2018
Respostas 8
Participantes 4