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