: IllegalArgumentException occurred calling getter

1 resposta
H

Boa Tarde gente!!

Estou me deparando com esse erro. Não estou conseguindo resolver. Como já li num post a respeito desse erro, poderia ser problema de conversão de tipo, mas não resolver. O que mais poderia ser??
2007-09-19 10:04:39,984 [http-8084-Processor25] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/svo].[Faces Servlet] - Servlet.service() for servlet Faces Servlet threw exception
javax.faces.el.EvaluationException: org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of beans.Item_Pedido.cod_itemPedido
	at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:130)
	at javax.faces.component.UICommand.broadcast(UICommand.java:305)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at util.Filtro.doFilter(Filtro.java:30)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
Caused by: org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of beans.Item_Pedido.cod_itemPedido
	at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:171)
	at org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:183)
	at org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:3524)
	at org.hibernate.persister.entity.AbstractEntityPersister.isTransient(AbstractEntityPersister.java:3240)
	at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:181)
	at org.hibernate.event.def.AbstractSaveEventListener.getEntityState(AbstractSaveEventListener.java:487)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:84)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
	at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507)
	at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
	at org.hibernate.engine.CascadingAction$1.cascade(CascadingAction.java:218)
	at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:268)
	at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:216)
	at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169)
	at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:296)
	at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:242)
	at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:219)
	at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169)
	at org.hibernate.engine.Cascade.cascade(Cascade.java:130)
	at org.hibernate.event.def.AbstractSaveEventListener.cascadeAfterSave(AbstractSaveEventListener.java:437)
	at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:326)
	at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:180)
	at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:108)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
	at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
	at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
	at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
	at beans.PedidoFacade.savePedido(PedidoFacade.java:57)
	at beans.PedidoFacade.CriaPedido(PedidoFacade.java:102)
	at loja.AppActionListener.processAction(AppActionListener.java:82)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
	... 27 more
Caused by: java.lang.IllegalArgumentException: object is not an instance of declaring class
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:145)
	... 65 more

Construtor e Mapeamento Item_Pedido:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
    <class name="beans.Pedido" 
           table="pedido" 
           catalog="svo2">
     <id name="cod_pedido" type="java.lang.Integer">
         <column name="cod_pedido" />
         <generator class="native" />
     </id>
     <property name="valor_total" type="java.lang.Float">
       <column name="valor_total" length="15" />
     </property>

     <set name="item_pedido"
	  inverse="true"
	  cascade="all">
          <key column="cod_pedido"/>
          <one-to-many class="beans.Item_Pedido"/>
     </set>
 
     <!-- coluna cod_corr vai em pedido -->
     
     <many-to-one
        name="correntista"
        column="cod_corr"
        class="beans.Correntista"/>   

     <many-to-one
          name="status_pedido"
          column="cod_status"
          class="beans.Status_Pedido"/>          

     <set name="entrega_pedido"
	  inverse="true">
          <key column="cod_entrega"/>
          <one-to-many class="beans.Entrega"/>
     </set>
          
     <set name="fatura"
	  inverse="true">
          <key column="cod_pedido"/>
          <one-to-many class="beans.Fatura"/>
     </set>      
      
 </class>
</hibernate-mapping>

Construtor Item_Pedido:

package beans;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
import loja.CarrinhoCompra;

public class Item_Pedido {
    private int cod_itemPedido,quantidade,cod_prod,cod_pedido;
    private float valor_total_item,valor_item;
    private Pedido pedido_item;
    private Produto produto;
    private CarrinhoCompra carrinho;
    public Item_Pedido() {
    }


 public Item_Pedido(int cod_prod, float valor_total_item, int quantidade) {
    this.cod_prod  = cod_prod;
    this.valor_total_item= valor_total_item;
    this.quantidade = quantidade;
  }
    
    public Pedido getPedido_item() {
        return pedido_item;
    }

    public void setPedido_item(Pedido pedido_item) {
        this.pedido_item = pedido_item;
    }

    public Produto getProduto() {
        return produto;
    }

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

    public int getQuantidade() {
        return quantidade;
    }
    
    public void setQuantidade(int quantidade) {
        this.quantidade = quantidade;
    }

    public float getValor_total_item() {
        return valor_total_item;
    }

    public void setValor_total_item(float valor_total_item) {
        this.valor_total_item = carrinho.getTotal();
    }

    public int getCod_prod() {
        return cod_prod;
    }

    public float getValor_item() {
        return valor_item;
    }

    public void setValor_item(float valor_item) {
        this.valor_item = valor_item;
    }

   public int getCod_pedido() {
        return cod_pedido;
    }

    public void setCod_pedido(int cod_pedido) {
        this.cod_pedido = cod_pedido;
    }

    public int getCod_itemPedido() {
        return cod_itemPedido;
    }

    public void setCod_itemPedido(int cod_itemPedido) {
        this.cod_itemPedido = cod_itemPedido;
    }

}

Construtor e Mapeamento Pedido:

package beans;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;

public class Pedido {
    private int cod_pedido, cod_corr;

    private Float valor_total;

    private Fatura fatura;

    private Entrega entrega_pedido ;
    
    private Status_Pedido status_pedido;
    
    private Set item_pedido = new HashSet();

    private Correntista correntista;

    public Pedido() {
    }

    public int getCod_pedido() {
        return cod_pedido;
    }

    public void setCod_pedido(int cod_pedido) {
        this.cod_pedido = cod_pedido;
    }

    public Float getValor_total() {
        return valor_total;
    }

    public void setValor_total(Float valor_total) {
        this.valor_total = valor_total;
    }

    public Fatura getFatura() {
        return fatura;
    }

    public void setFatura(Fatura fatura) {
        this.fatura = fatura;
    }

    public Entrega getEntrega_pedido() {
        return entrega_pedido;
    }

    public void setEntrega_pedido(Entrega entrega_pedido) {
        this.entrega_pedido = entrega_pedido;
    }

    public Status_Pedido getStatus_pedido() {
        return status_pedido;
    }

    public void setStatus_pedido(Status_Pedido status_pedido) {
        this.status_pedido = status_pedido;
    }

    public Correntista getCorrentista() {
        return correntista;
    }

    public void setCorrentista(Correntista correntista) {
        this.correntista = correntista;
    }

    public int getCod_corr() {
        return cod_corr;
    }

    public void setCod_corr(int cod_corr) {
        this.cod_corr = cod_corr;
    }

    public Set getItem_pedido() {
        return item_pedido;
    }

    public void setItem_pedido(Set item_pedido) {
        this.item_pedido = item_pedido;
    }

}

Mapeamento Pedido:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
    <class name="beans.Pedido" 
           table="pedido" 
           catalog="svo2">
     <id name="cod_pedido" type="java.lang.Integer">
         <column name="cod_pedido" />
         <generator class="native" />
     </id>
     <property name="valor_total" type="java.lang.Float">
       <column name="valor_total" length="15" />
     </property>

     <set name="item_pedido"
	  inverse="true"
	  cascade="all">
          <key column="cod_pedido"/>
          <one-to-many class="beans.Item_Pedido"/>
     </set>
 
     <!-- coluna cod_corr vai em pedido -->
     
     <many-to-one
        name="correntista"
        column="cod_corr"
        class="beans.Correntista"/>   

     <many-to-one
          name="status_pedido"
          column="cod_status"
          class="beans.Status_Pedido"/>          

     <set name="entrega_pedido"
	  inverse="true">
          <key column="cod_entrega"/>
          <one-to-many class="beans.Entrega"/>
     </set>
          
     <set name="fatura"
	  inverse="true">
          <key column="cod_pedido"/>
          <one-to-many class="beans.Fatura"/>
     </set>      
      
 </class>
</hibernate-mapping>

Construtor e mapeamento Produto que é associado ao item_pedido:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="beans.Produto" 
           table="produto" 
           catalog="svo2">
        <id name="cod_prod" 
            type="java.lang.Integer">
            <column name="cod_prod" />
            <generator class="native" />
        </id>
        <property name="descricao" type="java.lang.String">
          <column name="descricao" length="60" />
        </property>
        <property name="qtde_est_min" type="java.lang.Integer">
          <column name="qtde_est_min" />
        </property>
        <property name="qtde_est_max" type="java.lang.Integer">
              <column name="qtde_est_max" />
        </property>
        <property name="valor_custo" type="float">
              <column name="valor_custo" length="15" />
        </property>
        <property name="valor_revenda" type="float">
              <column name="valor_revenda" length="15" />
        </property>
        <property name="imagem" type="java.sql.Blob">
              <column name="imagem" />
        </property>        

      
        <many-to-one
          name="prod_cat"
          column="cod_cat"
          class="beans.Categoria"
          fetch="join" cascade="all"/>

          
     <set name="item_produto"
	  inverse="true">
          <key column="cod_prod"/>
          <one-to-many class="beans.Item_Pedido"/>
	</set>
        
      </class>
</hibernate-mapping>
package beans;

import java.sql.Blob;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;

public class Produto {
    public int cod_prod,cod_cat;
    private String descricao;
    private int qtde_est_min;
    private int qtde_est_max;
    private float valor_custo;
    private float valor_revenda;
    private Blob imagem;
    private  Categoria prod_cat;
    private String descr_categoria;
    private Set item_produto;

    
  public Produto(){
  }    
    

 public Produto(int cod_prod, String descricao, float valor_revenda) {
    this.cod_prod      = cod_prod;
    this.descricao     = descricao;
    this.valor_revenda = valor_revenda;
  }

    public String getDescricao() {
        return descricao;
    }
    
    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }
    
    public int getQtde_est_min() {
        return qtde_est_min;
    }
    
    public void setQtde_est_min(int val) {
        this.qtde_est_min = val;
    }
    
    public int getQtde_est_max() {
        return qtde_est_max;
    }

    public void setQtde_est_max(int qtde_est_max) {
        this.qtde_est_max = qtde_est_max;
    }
 
    public float getValor_custo() {
        return valor_custo;
    }
    
    public void setValor_custo(float val) {
        this.valor_custo = val;
    }
    
    public float getValor_revenda() {
        return valor_revenda;
    }
    
    public void setValor_revenda(float val) {
        this.valor_revenda = val;
    }
    
    public Blob getImagem() {
        return imagem;
    }
    
    public void setImagem(Blob val) {
        this.imagem = val;
    }

    public Set getItem_produto() {
        return item_produto;
    }

    public void setItem_produto(Set item_produto) {
        this.item_produto = item_produto;
    }

    public int getCod_cat() {
        return cod_cat;
    }

    public void setCod_cat(int cod_cat) {
        this.cod_cat = cod_cat;
    }

    public Categoria getProd_cat() {
        return prod_cat;
    }

    public void setProd_cat(Categoria prod_cat) {
        this.prod_cat = prod_cat;
    }

    public int getCod_prod() {
        return cod_prod;
    }

    public void setCod_prod(int cod_prod) {
        this.cod_prod = cod_prod;
    }
}
Tem ideia do que poderia ser??

A classe onde passo os item_pedido para o produto:
public synchronized void CriaPedido(Pedido pedido,
        CarrinhoCompra carrinhoCompra, Correntista cfAux) {
        pedido.setCorrentista(cfAux);
        Status_PedidoFacade statusPedidoFacade = new Status_PedidoFacade();
        pedido.setStatus_pedido(statusPedidoFacade.findByDescricao("aberto"));
        pedido.setValor_total(carrinhoCompra.getValor_total_item());
        Set item_pedido = new HashSet(); 
      Item_PedidoFacade itemPedidoFacade = new Item_PedidoFacade();
        try {
         HibernateUtil.beginTransaction(); 
         Session session = HibernateUtil.currentSession();
         Iterator itensCompra = carrinhoCompra.getItensCompra().iterator();
            while (itensCompra.hasNext()) {
             item_pedido.add(itensCompra);
             pedido.getItem_pedido().add(itensCompra);
             Item_Pedido item = (Item_Pedido) itensCompra.next();
             ProdutoFacade produtoFacade = new ProdutoFacade();
             item.setProduto(produtoFacade.findByCodProd(item.getCod_prod()));
             item.setPedido_item(pedido);
             item.setQuantidade(item.getQuantidade());
             item.setValor_item(item.getValor_item());
             item.setValor_total_item(item.getValor_total_item());
            }
        }
    catch (Exception e) {
    }
      this.savePedido(pedido);  
      HibernateUtil.commitTransaction();
      //itemPedidoFacade.criaItem_Pedido(item_pedido);
 }

1 Resposta

nbluis

Opa… cola o javadoc da aplicação ai tb. :smiley:

Perco o amigo, mas não perco a piada.:smiley:

Criado 19 de setembro de 2007
Ultima resposta 19 de set. de 2007
Respostas 1
Participantes 2