Target Unrecheable

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();
    }
    
}

[code]/*

  • 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 listaVenda = new ArrayList();
    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 getListaVenda() {
    return listaVenda;
    }

    public void setListaVenda(List 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 getLista() {
    return vendaFacade.consultar();
    }

    public void setLista(List 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 getPessoaFisicas() {
    List listaPessoaFisicas = new ArrayList();
    for (PessoaFisica pf : pfFacade.consultar()) {
    listaPessoaFisicas.add(new SelectItem(pf, pf.getDescricao()));
    }
    return listaPessoaFisicas;
    }

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

    public List getProdutos() {
    List listaProdutos = new ArrayList();
    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 getItensVendas() {
    return venda.getItensVendas();
    }
    }
    [/code]

[code]/*

  • 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();
    }

}

[/code]

[code]<?xml version='1.0' encoding='UTF-8' ?>

                    </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>
[/code]

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:

[code]public Pessoa getPessoa(){
if (pessoa == null){
pessoa = new Pessoa();
}

return pessoa;

}[/code]

[quote=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:

[code]public Pessoa getPessoa(){
if (pessoa == null){
pessoa = new Pessoa();
}

return pessoa;

}[/code][/quote]
Isso no controle da venda ou na entidade venda?

[quote=lucasmartins][quote=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:

[code]public Pessoa getPessoa(){
if (pessoa == null){
pessoa = new Pessoa();
}

return pessoa;

}[/code][/quote]
Isso no controle da venda ou na entidade venda?[/quote]Olha o a mensagem de erro por completa:
value="#{vendaControle.itensVenda.quantidade}": Target Unreachable, ‘null’ returned null

Em qual classe está o erro?

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

[code]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
[/code]

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]

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…

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

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

[quote=Hebert Coelho][quote=lucasmartins]Hmmmmmmmmm o subtotal…
Vo ve o que ajeito aqui, já já posto.
Obrigado.[/quote]Não acho que seja ele. ^^
Você fez o debug?[/quote]
Vou tentar debugar agora.

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

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

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

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

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

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

}[/code]