[Android] Problemas no recebimento de obj serializados obtidos via hibernate

Olá, esse é meu primeiro post aqui, desculpe se o titulo ficou um pouco confuso.

Para melhorar vou explicar melhor do que se trata meu projeto:

Ele é dividido em 3 partes:
Um cliente android
Um servidor que fornece os objetos salvos em banco para o cliente android(hibernate+MySql)
Um projeto Web em JSF que acessa o mesmo banco (hibernate+MySql)

O android e o servidor se cominicam via socket, a comunicação é sempre feita por um objeto chamado Pacote (código abaixo), que tem “cabecalho” e “conteudo”(o que realmente é enviado)
O objeto requerido é posto no atributo “conteudo” da classe “Pacote” com um “cabecalho” para identificá-lo

O problema está na hora do android converter os objetos de dentro do atributo “conteudo” para sua tipagem de origem.
Quando eu mando os objetos sem recuperá-los do banco com o hibernate, tudo funciona certinho. Porem na hora de enviar os mesmos objetos, mas vindos do banco, eu tenho problemas com as dependências do hibernate.
Cheguei a adicionar ao android os jar do hibernate para ver se resolvia o problema, porem gerou outro:

(Servidor)o metodo de envio

[code] private void BuscaListaSabor() {
List listaSabor = new ArrayList();
SaborHandler saborHandler = new SaborHandler();

    listaSabor = saborHandler.getListaSabor();
    Sabor teste = listaSabor.get(0);
    
    System.out.println("enviando: "+teste);
    
    pacoteEnviado = new Pacote(Constantes.SOCKET_DELIVERY_SABOR_LIST, teste);
    
    
}[/code]

(Android)recebimento do pacote), o local do erro:

[code] Log.i(“SOCKET”, “Lendo resposta…”);
pacoteRecebido = (Pacote) in.readObject();

		Sabor teste = (Sabor) pacoteRecebido.getConteudo(); //aqui da erro!
		Log.i("SOCKET", teste.getNome());[/code]

o objeto pacote

[code]package socket.entidade;

import java.io.Serializable;

public class Pacote implements Serializable{
private static final long serialVersionUID = 1L;

private final int cabecalho;
private final Object conteudo;

public Pacote(int cabecalho, Object conteudo) {
	super();
	this.cabecalho = cabecalho;
	this.conteudo = conteudo;
}

public int getCabecalho() {
	return cabecalho;
}

public Object getConteudo() {
	return conteudo;
}

}
[/code]

o objeto enviado dentro do pacote(servidor, com annotation)

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package modelo.entidade;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlTransient;

/**
*

  • @author renanmarcel
    */
    @Entity
    @Table(name = “sabor”)
    public class Sabor implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = “id_sabor”)
    private Integer idSabor;
    @Column(name = “nome”)
    private String nome;
    @ManyToMany(mappedBy = “saborList”)
    private List pizzaList;

    public Sabor() {
    }

    public Sabor(Integer idSabor) {
    this.idSabor = idSabor;
    }

    public Integer getIdSabor() {
    return idSabor;
    }

    public void setIdSabor(Integer idSabor) {
    this.idSabor = idSabor;
    }

    public String getNome() {
    return nome;
    }

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

    @XmlTransient
    public List getPizzaList() {
    return pizzaList;
    }

    public void setPizzaList(List pizzaList) {
    this.pizzaList = pizzaList;
    }

    @Override
    public int hashCode() {
    int hash = 0;
    hash += (idSabor != null ? idSabor.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 Sabor)) {
    return false;
    }
    Sabor other = (Sabor) object;
    if ((this.idSabor == null && other.idSabor != null) || (this.idSabor != null && !this.idSabor.equals(other.idSabor))) {
    return false;
    }
    return true;
    }

    @Override
    public String toString() {
    return “modelo.entidade.Sabor[ idSabor=” + idSabor + " ]";
    }

}
[/code]

Obrigado pela ajuda!

Desculpe pela bagunça, mas acho que isso é mais um problema de Socket do que de Android
Seria possível algum moderador mover o tópico para a área de “Java Avançado”?

Obrigado