Deserialização

Pessoal bom dia,

alguém já pegou esse erro:
Caused by: org.hibernate.type.SerializationException: could not deserialize

não sei o que é, espero que alguém possa me ajudar.

http://www.guj.com.br/posts/list/56973.java

Oi mario,
cara …eu até já tinha visto esse post e minhas classes implementam a interface Serializable.
Tem alguma outra coisa que pode ser?

sim, pode. :lol:

Posta o código do seu bean.

código do bean:

@Entity
@Table(name = "siabmtb003_perfilbiometrico", schema="bd_siabm")
// @SequenceGenerator(name = "perfilbiometrico_seq", sequenceName =
// "perfilbiometrico_seq")
// @IdClass(PerfilBiometricoPK.class)
public class PerfilBiometrico implements Serializable {

	private static final long serialVersionUID = -7324871025480600143L;
	private PerfilBiometricoPK idComposta;
	private Byte[] template;
	private Integer qualdidadeTemplate;
	private Boolean dedoAusente;
	private Cliente clienteFK;
	private TipoDedo tipoDedoFK;

	public PerfilBiometrico() {
		super();
	}

	public PerfilBiometrico(Byte[] template, Integer qualdidadeTemplate,
			Boolean dedoAusente, Cliente clienteFK, TipoDedo tipoDedoFK) {
		super();
		this.template = template;
		this.qualdidadeTemplate = qualdidadeTemplate;
		this.dedoAusente = dedoAusente;
		this.clienteFK = clienteFK;
		this.tipoDedoFK = tipoDedoFK;
	}

	public PerfilBiometrico(PerfilBiometricoPK idComposta, Byte[] template,
			Integer qualdidadeTemplate, Boolean dedoAusente, Cliente clienteFK,
			TipoDedo tipoDedoFK) {
		super();
		this.idComposta = idComposta;
		this.template = template;
		this.qualdidadeTemplate = qualdidadeTemplate;
		this.dedoAusente = dedoAusente;
		this.clienteFK = clienteFK;
		this.tipoDedoFK = tipoDedoFK;
	}

	@EmbeddedId
	//@Column (name="co_perfilbiometrico_pk", nullable=false)
	public PerfilBiometricoPK getIdComposta() {
		return idComposta;
	}

	public void setIdComposta(PerfilBiometricoPK idComposta) {
		this.idComposta = idComposta;
	}

	@Column(name = "bi_template")
	public Byte[] getTemplate() {
		return template;
	}

	public void setTemplate(Byte[] template) {
		this.template = template;
	}

	@Column(name = "nu_qualidadetemplate")
	public Integer getQualdidadeTemplate() {
		return qualdidadeTemplate;
	}

	public void setQualdidadeTemplate(Integer qualdidadeTemplate) {
		this.qualdidadeTemplate = qualdidadeTemplate;
	}

	@Column(name = "ic_dedoausente", nullable = false)
	public Boolean getDedoAusente() {
		return dedoAusente;
	}

	public void setDedoAusente(Boolean dedoAusente) {
		this.dedoAusente = dedoAusente;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@Cascade(CascadeType.ALL)
	@JoinColumn(name = "co_cliente_fk", insertable = false, updatable = false)
	/**
	 * @return the clienteFK
	 */
	public Cliente getClienteFK() {
		return clienteFK;
	}

	/**
	 * @param clienteFK
	 *            the clienteFK to set
	 */
	public void setClienteFK(Cliente clienteFK) {
		this.clienteFK = clienteFK;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@Cascade(CascadeType.ALL)
	@JoinColumn(name = "co_tipodedo_fk", insertable = false, updatable = false)
	public TipoDedo getTipoDedoFK() {
		return tipoDedoFK;
	}

	public void setTipoDedoFK(TipoDedo tipoDedoFK) {
		this.tipoDedoFK = tipoDedoFK;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((clienteFK == null) ? 0 : clienteFK.hashCode());
		result = prime * result
				+ ((dedoAusente == null) ? 0 : dedoAusente.hashCode());
		result = prime * result
				+ ((idComposta == null) ? 0 : idComposta.hashCode());
		result = prime
				* result
				+ ((qualdidadeTemplate == null) ? 0 : qualdidadeTemplate
						.hashCode());
		result = prime * result + Arrays.hashCode(template);
		result = prime * result
				+ ((tipoDedoFK == null) ? 0 : tipoDedoFK.hashCode());
		return result;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		PerfilBiometrico other = (PerfilBiometrico) obj;
		if (clienteFK == null) {
			if (other.clienteFK != null)
				return false;
		} else if (!clienteFK.equals(other.clienteFK))
			return false;
		if (dedoAusente == null) {
			if (other.dedoAusente != null)
				return false;
		} else if (!dedoAusente.equals(other.dedoAusente))
			return false;
		if (idComposta == null) {
			if (other.idComposta != null)
				return false;
		} else if (!idComposta.equals(other.idComposta))
			return false;
		if (qualdidadeTemplate == null) {
			if (other.qualdidadeTemplate != null)
				return false;
		} else if (!qualdidadeTemplate.equals(other.qualdidadeTemplate))
			return false;
		if (!Arrays.equals(template, other.template))
			return false;
		if (tipoDedoFK == null) {
			if (other.tipoDedoFK != null)
				return false;
		} else if (!tipoDedoFK.equals(other.tipoDedoFK))
			return false;
		return true;
	}

}

Eu não vi nada especial no seu bean, mas pode ser que o problema esteja em Cliente, TipoDedo ou até mesmo em PerfilBiometricoPK.

Se qualquer uma dessas classes tiver algum campo que não for serializavel, vai dar esse pau.

O seu campo Byte[] tbm pode dar esse problema, mas ai vai de mapeamento e banco, acho que vc poderia criar um teste e retirar esse campo pra ver se é ele que está gerando o problema( ou algum dos outros objetos).

entendi…vou tentar!

Verifique as associações dessa classe, provavelmente o “gato” está lá.

associada a essa classe tenho a classe cliente:

@Entity
@Table(name = "siabmtb001_cliente")
@Root(name = "siabmtb001_cliente")
@BatchSize(size=1)
public class Cliente implements Serializable {

	private static final long serialVersionUID = -7986865097247829206L;
	private Integer idCliente;
	private Date dataCadastro;
	private String nis;
	private List<PerfilBiometrico> perfisBiometricos;

	public Cliente() {
		super();
	}

	public Cliente(Integer idCliente) {
		super();
		this.idCliente = idCliente;
	}

	public Cliente(Date dataCadastro, String nis,
			List<PerfilBiometrico> perfisBiometricos) {
		super();
		this.dataCadastro = dataCadastro;
		this.nis = nis;
		this.perfisBiometricos = perfisBiometricos;
	}

	@Id
	@SequenceGenerator(name = "cliente_seq", sequenceName = "cliente_seq")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="cliente_seq")
	@Column(name="co_cliente_pk")
	public Integer getIdCliente() {
		return idCliente;
	}

	public void setIdCliente(Integer idCliente) {
		this.idCliente = idCliente;
	}

	@Column(name = "co_nis", nullable = false, length = 11)
	@Element(name = "nis", required = true)
	public String getNis() {
		return nis;
	}

	public void setNis(String nis) {
		this.nis = nis;
	}

	@Column(name = "dt_cadastro", nullable = false)
	@Element(name = "dataCadastro", required = true)
	public Date getDataCadastro() {
		return dataCadastro;
	}

	public void setDataCadastro(Date dataCadastro) {
		this.dataCadastro = dataCadastro;
	}

	@OneToMany(mappedBy = "clienteFK", fetch = FetchType.LAZY)
	@Cascade(CascadeType.ALL)
	@ElementList(name = "perfilbiometrico", required = true)
	public List<PerfilBiometrico> getPerfisBiometricos() {
		return perfisBiometricos;
	}

	public void setPerfisBiometricos(List<PerfilBiometrico> perfisBiometricos) {
		this.perfisBiometricos = perfisBiometricos;
	}

a classe tipodedo:

@Entity 
@Table (name = "siabmtb002_tipodedo")
@SequenceGenerator (name="tipodedo_seq", sequenceName="tipodedo_seq")
public class TipoDedo implements Serializable{

	private static final long serialVersionUID = -31804817054861161L;
	private Integer idTipoDedo;
	private String sigla;
	private List<PerfilBiometrico> perfisBiometricos; 

	
	
	public TipoDedo() {
		super();
	}
	public TipoDedo(Integer idTipoDedo) {
		super();
		this.idTipoDedo = idTipoDedo;
	}
	public TipoDedo(String sigla, List<PerfilBiometrico> perfisBiometricos) {
		super();
		this.sigla = sigla;
		this.perfisBiometricos = perfisBiometricos;
	}
	@Id
	@GeneratedValue (generator="tipodedo_seq", strategy=GenerationType.AUTO)
	@Column (name = "co_tipodedo_pk", nullable=false)
	/**
	 * @return the idTipoDedo
	 */
	public Integer getIdTipoDedo() {
		return idTipoDedo;
	}
	/**
	 * @param idTipoDedo the idTipoDedo to set
	 */
	public void setIdTipoDedo(Integer idTipoDedo) {
		this.idTipoDedo = idTipoDedo;
	}
	@Column (name = "de_sigla", length=15)
	public String getSigla() {
		return sigla;
	}
	public void setSigla(String sigla) {
		this.sigla = sigla;
	}
	@OneToMany (mappedBy="tipoDedoFK", fetch=FetchType.LAZY)
	@Cascade (CascadeType.ALL)
	public List<PerfilBiometrico> getPerfisBiometricos() {
		return perfisBiometricos;
	}
	public void setPerfisBiometricos(List<PerfilBiometrico> perfisBiometricos) {
		this.perfisBiometricos = perfisBiometricos;
	}

e a classe perfilbiometricoPK:

@Embeddable
public class PerfilBiometricoPK implements Serializable {

	private static final long serialVersionUID = 3866057215975519730L;
	private Cliente idCliente;
	private TipoDedo idTipoDedo;

	@Column(name = "co_cliente_fk", nullable = false)
	public Cliente getIdCliente() {
		return idCliente;
	}

	public void setIdCliente(Cliente idCliente) {
		this.idCliente = idCliente;
	}

	@Column(name = "co_tipodedo_fk", nullable = false)
	public TipoDedo getIdTipoDedo() {
		return idTipoDedo;
	}

	public void setIdTipoDedo(TipoDedo idTipoDedo) {
		this.idTipoDedo = idTipoDedo;
	}

Poste mais detalhes tbm do seu contexto…Vc está tentando gravar um objeto em um arquivo ? Ou trabalhando com objetos distribuídos ? Ou está trabalhando com streams ? Se possível coloque tbm o código onde está dando o erro para o pessoal te ajudar…

Anexa (NÃO COLE), seu stacktrace no forum por favor.