Target Unrecheable

14 respostas
lucasmartins

Boa noite pessoal, estou fazendo uma movimentação (venda) no projeto e me deparei com o seguinte erro e não consigo achar a solução:

/gestao/vendaedita.xhtml @49,113 value="#{vendaControle.itensVenda.quantidade}": Target Unreachable, 'null' returned null

Alguém pode me ajudar?
Segue abaixo o bean as entidades envolvidas e a visão.
Obrigado.
Abraço.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.nfacil.model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.*;

/**
 *
 * @author Lucas
 */
@Entity
public class Venda implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    @Temporal(TemporalType.DATE)
    private Date dataVenda;
    @Column
    private Double vlTotal;
    @OneToMany(cascade = CascadeType.ALL, fetch= FetchType.EAGER)
    private List<ItensVenda> itensVendas;
    @ManyToOne
    private PessoaFisica clientePF;
    @ManyToOne
    private PessoaJuridica clientePJ;
    @Column
    private String natureza;

    public Venda() {
        this.vlTotal = Double.valueOf("0");
        this.itensVendas =  new ArrayList<ItensVenda>();
    }

   

    public Long getId() {
        return id;
    }

    public String getNatureza() {
        return natureza;
    }

    public void setNatureza(String natureza) {
        this.natureza = natureza;
    }

    public PessoaFisica getClientePF() {
        return clientePF;
    }

    public void setClientePF(PessoaFisica clientePF) {
        this.clientePF = clientePF;
    }

    public PessoaJuridica getClientePJ() {
        return clientePJ;
    }

    public void setClientePJ(PessoaJuridica clientePJ) {
        this.clientePJ = clientePJ;
    }

    public Date getDataVenda() {
        return dataVenda;
    }

    public void setDataVenda(Date dataVenda) {
        this.dataVenda = dataVenda;
    }

    public List<ItensVenda> getItensVendas() {
        return itensVendas;
    }

    public void setItensVendas(ArrayList<ItensVenda> itensVendas) {
        this.itensVendas = itensVendas;
    }

    public Double getVlTotal() {
        return vlTotal;
    }

    public void setVlTotal(Double vlTotal) {
        this.vlTotal = vlTotal;
    }

    public void setId(Long id) {
        this.id = id;
    }
   

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Venda)) {
            return false;
        }
        Venda other = (Venda) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return id.toString();
    }
}
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.nfacil.model;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;

/**
 *
 * @author Lucas
 */
@Entity
public class ItensVenda implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    @Column
    private Double vlUniit;
    @Column
    private Double quantidade;
    @Column
    private Double subTotal;
    @ManyToOne
    private Produto produto;
    @Column
    private Integer cfop;

    public ItensVenda() {
        
    }

    
    public Long getId() {
        return id;
    }

    public Integer getCfop() {
        return cfop;
    }

    public void setCfop(Integer cfop) {
        this.cfop = cfop;
    }
    
    public Produto getProduto() {
        return produto;
    }

    public void setProduto(Produto produto) {
        this.produto = produto;
    }

    public Double getQuantidade() {
        return quantidade;
    }

    public void setQuantidade(Double quantidade) {
        this.quantidade = quantidade;
    }

    public Double getSubTotal() {
        return subTotal;
    }

    public void setSubTotal(Double subTotal) {
        this.subTotal = subTotal;
    }

    public Double getVlUniit() {
        return vlUniit;
    }

    public void setVlUniit(Double vlUniit) {
        this.vlUniit = vlUniit;
    }
    

    public void setId(Long id) {
        this.id = id;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof ItensVenda)) {
            return false;
        }
        ItensVenda other = (ItensVenda) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return id.toString();
    }
    
}
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.nfacil.control;

import br.com.nfacil.converter.ConverterGenerico;
import br.com.nfacil.facade.VendaFacade;
import br.com.nfacil.facade.PessoaFisicaFacade;
import br.com.nfacil.facade.PessoaJuridicaFacade;
import br.com.nfacil.facade.ProdutoFacade;
import br.com.nfacil.model.*;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.convert.Converter;
import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;

/**
 *
 * @author lucas
 */
@ManagedBean(name = "vendaControle")
@SessionScoped
public class VendaControle implements Serializable {

    private Venda venda = new Venda();
    @EJB
    private VendaFacade vendaFacade;
    @EJB
    private PessoaFisicaFacade pfFacade;
    @EJB
    private PessoaJuridicaFacade pjFacade;
    @EJB
    private ProdutoFacade produtoFacade;
    private Converter pfConverter;
    private Converter pjConverter;
    private Converter produtoConverter;
    private ItensVenda itensVenda;
    private List<Venda> listaVenda = new ArrayList<Venda>();
    private Integer tipoCliente = 0;
    private Double vlVenda;

    public void salvar() {
        vendaFacade.salvar(venda);
    }

    public void novo() {
        venda = new Venda();
        itensVenda = new ItensVenda();

    }
    
    public Integer getTipoCliente() {
        return tipoCliente;
    }

    public Boolean getComboPF() {
        if (this.tipoCliente == 1) {
            return true;
        } else {
            return false;
        }
    }

    public void combo() {

        getComboPF();
        getComboPJ();

    }

    public Boolean getComboPJ() {
        if (this.tipoCliente == 2) {
            return true;
        } else {
            return false;
        }
    }

    public void setTipoCliente(Integer tipoCliente) {
        this.tipoCliente = tipoCliente;
    }

    public Converter getPessoaFisicaConverter() {
        if (pfConverter == null) {
            pfConverter = new ConverterGenerico(pfFacade);
        }
        return pfConverter;
    }

    public Converter getPessoaJuridicaConverter() {
        if (pjConverter == null) {
            pjConverter = new ConverterGenerico(pjFacade);
        }
        return pjConverter;
    }

    public Converter getProdutoConverter() {
        if (produtoConverter == null) {
            produtoConverter = new ConverterGenerico(produtoFacade);
        }
        return produtoConverter;
    }

    public List<Venda> getListaVenda() {
        return listaVenda;
    }

    public void setListaVenda(List<Venda> listaVenda) {
        this.listaVenda = listaVenda;
    }

    public Converter getPfConverter() {
        return pfConverter;
    }

    public void setPfConverter(Converter pfConverter) {
        this.pfConverter = pfConverter;
    }

    public PessoaFisicaFacade getPfFacade() {
        return pfFacade;
    }

    public void setPfFacade(PessoaFisicaFacade pfFacade) {
        this.pfFacade = pfFacade;
    }

    public Converter getPjConverter() {
        return pjConverter;
    }

    public void setPjConverter(Converter pjConverter) {
        this.pjConverter = pjConverter;
    }

    public PessoaJuridicaFacade getPjFacade() {
        return pjFacade;
    }

    public void setPjFacade(PessoaJuridicaFacade pjFacade) {
        this.pjFacade = pjFacade;
    }

    public ProdutoFacade getProdutoFacade() {
        return produtoFacade;
    }

    public void setProdutoFacade(ProdutoFacade produtoFacade) {
        this.produtoFacade = produtoFacade;
    }

    public void cancelar() {
        venda = new Venda();
    }

    public void setPessoaFisicaConverter(Converter pfConverter) {
        this.pfConverter = pfConverter;
    }

    public void setPessoaJuridicaConverter(Converter pjConverter) {
        this.pjConverter = pjConverter;
    }

    public void setProdutoConverter(Converter produtoConverter) {
        this.produtoConverter = produtoConverter;
    }

    public Double getVlVenda() {
        if (itensVenda == null) {
            return Double.parseDouble("0");
        } else if (itensVenda.getProduto() == null) {
            return Double.parseDouble("0");
        } else {
            return itensVenda.getProduto().getVlvenda();
        }

    }

    public void setVlVenda(Double vlVenda) {
        this.vlVenda = vlVenda;
    }

    public void adicionarProduto() {
        itensVenda.setVlUniit(itensVenda.getProduto().getVlvenda());
        itensVenda.setSubTotal((itensVenda.getSubTotal()) * itensVenda.getQuantidade());
        venda.getItensVendas().add(itensVenda);
        venda.setVlTotal(venda.getVlTotal() + itensVenda.getSubTotal());
        itensVenda = new ItensVenda();

    }

    public void editar(ActionEvent e) {
        venda = (Venda) e.getComponent().getAttributes().get("venda");
    }

    public void excluir(ActionEvent e) {
        venda = (Venda) e.getComponent().getAttributes().get("venda");
        vendaFacade.remove(venda);
    }

    public List<Venda> getLista() {
        return vendaFacade.consultar();
    }

    public void setLista(List<Venda> lista) {
        this.listaVenda = lista;
    }

    public VendaFacade getVendaFacade() {
        return vendaFacade;
    }

    public void setVendaFacade(VendaFacade vendaFacade) {
        this.vendaFacade = vendaFacade;
    }

    public Venda getVenda() {
        return venda;
    }

    public void setVenda(Venda venda) {
        this.venda = venda;
    }

    public ItensVenda getItensVenda() {
        return itensVenda;
    }

    public void setItensVenda(ItensVenda itensVenda) {
        this.itensVenda = itensVenda;
    }

    public List<SelectItem> getPessoaFisicas() {
        List<SelectItem> listaPessoaFisicas = new ArrayList<SelectItem>();
        for (PessoaFisica pf : pfFacade.consultar()) {
            listaPessoaFisicas.add(new SelectItem(pf, pf.getDescricao()));
        }
        return listaPessoaFisicas;
    }

    public List<SelectItem> getPessoaJuridicas() {
        List<SelectItem> listaPessoaJuridicas = new ArrayList<SelectItem>();
        for (PessoaJuridica pj : pjFacade.consultar()) {
            listaPessoaJuridicas.add(new SelectItem(pj, pj.getDescricao()));
        }
        return listaPessoaJuridicas;
    }

    public List<SelectItem> getProdutos() {
        List<SelectItem> listaProdutos = new ArrayList<SelectItem>();
        for (Produto p : produtoFacade.consultar()) {
            listaProdutos.add(new SelectItem(p, p.getDescricao()));
        }
        return listaProdutos;
    }

    public void calculaProduto() {
        itensVenda.setSubTotal(itensVenda.getProduto().getVlvenda() * itensVenda.getQuantidade());
    }

    public List<ItensVenda> getItensVendas() {
        return venda.getItensVendas();
    }
}
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.nfacil.model;

import java.io.Serializable;
import javax.persistence.*;

/**
 *
 * @author Lucas
 */
@Entity
public class Produto implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    @Column
    private String descricao;
    @Column
    private String marca;
    @Column 
    private String codbarras;
    @Column
    private String ncm;
    @Column
    private String unmed;
    @Column
    private Double vlcusto;
    @Column
    private Double perlucro;
    @Column
    private Double vlvenda;
    @Column
    private Double estoque;
    @Column
    private Double alicms;
    @Column
    private Double alpis;
    @Column 
    private Double alcofins;
    @ManyToOne
    private Grupo grupo;
    @Column
    private Boolean ativo;

    public Double getAlcofins() {
        return alcofins;
    }

    public void setAlcofins(Double alcofins) {
        this.alcofins = alcofins;
    }

    public Double getAlicms() {
        return alicms;
    }

    public void setAlicms(Double alicms) {
        this.alicms = alicms;
    }

    public Double getAlpis() {
        return alpis;
    }

    public void setAlpis(Double alpis) {
        this.alpis = alpis;
    }

    public Boolean getAtivo() {
        return ativo;
    }

    public void setAtivo(Boolean ativo) {
        this.ativo = ativo;
    }

    public String getCodbarras() {
        return codbarras;
    }

    public void setCodbarras(String codbarras) {
        this.codbarras = codbarras;
    }

   public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public Double getEstoque() {
        return estoque;
    }

    public void setEstoque(Double estoque) {
        this.estoque = estoque;
    }

    public Grupo getGrupo() {
        return grupo;
    }

    public void setGrupo(Grupo grupo) {
        this.grupo = grupo;
    }

    public String getMarca() {
        return marca;
    }

    public void setMarca(String marca) {
        this.marca = marca;
    }

    public String getNcm() {
        return ncm;
    }

    public void setNcm(String ncm) {
        this.ncm = ncm;
    }

    public Double getPerlucro() {
        return perlucro;
    }

    public void setPerlucro(Double perlucro) {
        this.perlucro = perlucro;
    }

    public String getUnmed() {
        return unmed;
    }

    public void setUnmed(String unmed) {
        this.unmed = unmed;
    }

    public Double getVlcusto() {
        return vlcusto;
    }

    public void setVlcusto(Double vlcusto) {
        this.vlcusto = vlcusto;
    }
   
    public Double getVlvenda() {
        return vlvenda;
    }

    public void setVlvenda(Double vlvenda) {
        this.vlvenda = vlvenda;
    }
    
    
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Produto)) {
            return false;
        }
        Produto other = (Produto) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return id.toString();
    }
    
}
<?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">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">
    <ui:decorate template="/WEB-INF/WebTemplate.xhtml">
        <ui:define name="menu"></ui:define>
        <ui:define name="centro">
            <h:form id="formulario">
                <p:growl id="messages"/>
                <p:fieldset legend="Lançamento de Vendas">
                    <h:panelGrid columns="6">
                        <h:outputText value="Data da Operação"/>
                        <p:calendar value="#{vendaControle.venda.dataVenda}" required="true"
                                    requiredMessage="A data é obrigatória" lang="pt_BR" pattern="dd/MM/yyyy"/>
                        <h:outputText value="Natureza da Operação"/>
                        <p:inputText value="#{vendaControle.venda.natureza}"/>
                        <h:outputText value="Tipo do Cliente"/>
                        <p:selectOneMenu id="tipoCli" value="#{vendaControle.tipoCliente}" converter="IntegerConverter">
                            <f:selectItem itemLabel="Selecione o tipo do cliente" itemValue="0"/>
                            <f:selectItem itemLabel="Pessoa Física" itemValue="1"/>
                            <f:selectItem itemLabel="Pessoa Jurídica" itemValue="2"/>
                            <p:ajax update="combos combopf combopj" event="change" listener="#{vendaControle.combo}"/>
                        </p:selectOneMenu>
                        <h:outputText value="Cliente"/>
                        <p:panel id="combos">
                            <p:selectOneMenu id="combopf" value="#{vendaControle.venda.clientePF}" converter="#{vendaControle.pessoaFisicaConverter}" required="true" requiredMessage="Selecione o Cliente" rendered="#{vendaControle.comboPF}">
                                <f:selectItem itemLabel="Selecione a pessoa" itemValue="0"/>
                                <f:selectItems value="#{vendaControle.pessoaFisicas}"/>
                            </p:selectOneMenu>
                            <p:selectOneMenu id="combopj" value="#{vendaControle.venda.clientePJ}" converter="#{vendaControle.pessoaJuridicaConverter}" required="true" requiredMessage="Selecione o Cliente" rendered="#{vendaControle.comboPJ}">
                                <f:selectItem itemLabel="Selecione a empresa" itemValue="0"/>
                                <f:selectItems value="#{vendaControle.pessoaJuridicas}"/>
                            </p:selectOneMenu>
                        </p:panel>
                        <h:outputText/><h:outputText/><h:outputText/><h:outputText/>
                        <h:outputText value="Valor total da operação"/>
                        <h:outputText id="vtot" value="#{vendaControle.venda.vlTotal}"/>
                        <h:outputText/><h:outputText/><h:outputText/><h:outputText/>
                        <h:outputText value="Selecione um produto"/>
                        <p:selectOneMenu value="#{vendaControle.itensVenda.produto}" converter="#{vendaControle.produtoConverter}">
                            <f:selectItem itemLabel="Selecione o produto" itemValue="0"/>
                            <f:selectItems value="#{vendaControle.produtos}"/>
                            <p:ajax update="@this quant" event="change"/>
                        </p:selectOneMenu>
                        <h:outputText value="Quantidade"/>
                        <p:inputText id="quant" value="#{vendaControle.itensVenda.quantidade}" immediate="true">
                            
                        </p:inputText>
                        <h:outputText/><h:outputText/>
                        <p:commandButton value="Adicionar" actionListener="#{vendaControle.adicionarProduto}" immediate="true">
                            <p:ajax event="click" update="tabela vtot"/>
                        </p:commandButton> 

                        <h:outputText/><h:outputText/><h:outputText/><h:outputText/>
                        <p:commandButton value="Novo" action="/gestao/vendaedita" actionListener="#{vendaControle.novo()}" ajax="false" immediate="true"/>
                        <p:commandButton value="Salvar" action="vendalista" actionListener="#{vendaControle.salvar()}" ajax="false"/>
                        <p:commandButton value="Cancelar" action="vendaLista" actionListener="#{vendaControle.cancelar()}" ajax="false" immediate="true"/>
                    </h:panelGrid>
                </p:fieldset>
                <p:panel id="tabelapanel">
                    <p:dataTable id="tabela" value="#{vendaControle.itensVendas}" var="item">
                        <p:column headerText="Produto">
                            <p align="center">
                                <h:outputText value="#{item.produto.id}"/>
                            </p>
                        </p:column>
                        <p:column headerText="Descrição">
                            <h:outputText value="#{item.produto.descricao}"/>
                        </p:column>
                        <p:column headerText="Quantidade">
                            <p align="center">
                                <h:outputText value="#{item.quantidade}"/>
                            </p>
                        </p:column>
                        <p:column headerText="Total">
                            <p align="center">
                                <h:outputText value="#{item.subTotal}"/>
                            </p>
                        </p:column>


                    </p:dataTable>
                </p:panel>
            </h:form>

        </ui:define>

    </ui:decorate>
</html>

14 Respostas

Hebert_Coelho

A mensagem de erro é bem tosca, mas dá uma pista do que pode ser: returned null

Acontece pq o get está retornando null.

No get do itensVenda você tem que fazer algo do tipo:
public Pessoa getPessoa(){
    if (pessoa == null){
        pessoa = new Pessoa();
    }

    return pessoa;
}
lucasmartins
Hebert Coelho:
A mensagem de erro é bem tosca, mas dá uma pista do que pode ser: returned null

Acontece pq o get está retornando null.

No get do itensVenda você tem que fazer algo do tipo:
public Pessoa getPessoa(){
    if (pessoa == null){
        pessoa = new Pessoa();
    }

    return pessoa;
}
Isso no controle da venda ou na entidade venda?
Hebert_Coelho
lucasmartins:
Hebert Coelho:
A mensagem de erro é bem tosca, mas dá uma pista do que pode ser: returned null

Acontece pq o get está retornando null.

No get do itensVenda você tem que fazer algo do tipo:
public Pessoa getPessoa(){
    if (pessoa == null){
        pessoa = new Pessoa();
    }

    return pessoa;
}
Isso no controle da venda ou na entidade venda?
Olha o a mensagem de erro por completa: value="#{vendaControle.itensVenda.quantidade}": Target Unreachable, 'null' returned null

Em qual classe está o erro?

lucasmartins

Tirei o immediate=true da view. O erro agora mudou:

Advertência: PWC4011: Unable to set request character encoding to UTF-8 from context /nFacil, because request parameters have already been read, or ServletRequest.getReader() has already been called
Advertência: PWC4011: Unable to set request character encoding to UTF-8 from context /nFacil, because request parameters have already been read, or ServletRequest.getReader() has already been called
Grave: 'java.lang.NullPointerException' recebido ao invocar escuta de ação '#{vendaControle.adicionarProduto}' para o componente 'j_idt44'
Grave: java.lang.NullPointerException
	at br.com.nfacil.control.VendaControle.adicionarProduto(VendaControle.java:191)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at com.sun.el.parser.AstValue.invoke(AstValue.java:254)
	at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302)
	at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:39)
	at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
	at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:153)
	at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
	at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
	at javax.faces.component.UICommand.broadcast(UICommand.java:300)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:935)
	at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1542)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
	at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)
	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)
	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)
	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)
	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
	at java.lang.Thread.run(Thread.java:722)

Grave: JSF1073: javax.faces.event.AbortProcessingException obtido durante o processamento de APPLY_REQUEST_VALUES 2: UIComponent-ClientId=formulario:j_idt44, Message=java.lang.NullPointerException
Grave: java.lang.NullPointerException
javax.faces.event.AbortProcessingException: java.lang.NullPointerException
	at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:182)
	at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
	at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
	at javax.faces.component.UICommand.broadcast(UICommand.java:300)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:935)
	at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1542)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
	at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)
	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)
	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)
	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)
	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
	at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NullPointerException
	at br.com.nfacil.control.VendaControle.adicionarProduto(VendaControle.java:191)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at com.sun.el.parser.AstValue.invoke(AstValue.java:254)
	at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302)
	at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:39)
	at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
	at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:153)
	... 33 more
lucasmartins

Trecho do código apontado com erro:
[code]
public void adicionarProduto() {
itensVenda.setVlUniit(itensVenda.getProduto().getVlvenda());
itensVenda.setSubTotal((itensVenda.getSubTotal()) * itensVenda.getQuantidade());
venda.getItensVendas().add(itensVenda);
venda.setVlTotal(venda.getVlTotal() + itensVenda.getSubTotal());
itensVenda = new ItensVenda();

}[code]

Hebert_Coelho

Pois é, é mais tratar oq eu falei né?!

Alguém nessa linha está null: at br.com.nfacil.control.VendaControle.adicionarProduto(VendaControle.java:191)

Eu tenho até um palpita de quem seja…

lucasmartins

Hmmmmmmmmm o subtotal…
Vo ve o que ajeito aqui, já já posto.
Obrigado.

Hebert_Coelho

lucasmartins:
Hmmmmmmmmm o subtotal…
Vo ve o que ajeito aqui, já já posto.
Obrigado.
Não acho que seja ele. ^^
Você fez o debug?

lucasmartins

Hebert Coelho:
lucasmartins:
Hmmmmmmmmm o subtotal…
Vo ve o que ajeito aqui, já já posto.
Obrigado.
Não acho que seja ele. ^^
Você fez o debug?

Vou tentar debugar agora.

lucasmartins

Tá foda kra, deve ser alguma coisa que tá bem debaixo do meu nariz e não consigo enxergar.
Não acertei como debugar kkkkk

lucasmartins

Estou desde ontem nisso! Varei a noite e não saí desse movimento. :cry:

Rodrigo_Sasaki

http://www.vogella.com/articles/EclipseDebugging/article.html

lucasmartins

http://www.vogella.com/articles/EclipseDebugging/article.html
Obrigado!

lucasmartins

ta dando itensVenda null
mas no metodo do botão nova venda eu estanciei:

public void novo() {
        venda = new Venda();
        itensVenda = new ItensVenda();

    }
Criado 9 de outubro de 2012
Ultima resposta 9 de out. de 2012
Respostas 14
Participantes 3