2011-09-20 3 views
0

У меня есть ошибка:Почему этот класс не сериализуем?

com.google.gwt.user.client.rpc.SerializationException: Type 'ru.xxx.empeditor.client.Dept$$EnhancerByCGLIB$$2f6af516' was not included in the set of types which can be serialized by this SerializationPolicy or its Class object could not be loaded. For security purposes, this type will not be serialized.: instance = [email protected] 

Почему этот класс не сериализации?

package ru.xxx.empeditor.client; 

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

import com.google.gwt.user.client.rpc.IsSerializable; 

/** 
* Dept generated by hbm2java 
*/ 
public class Dept implements IsSerializable { 

    private byte deptno; 
    private String dname; 
    private String loc; 
    private Set<Emp> emps = new HashSet<Emp>(0); 

    public Dept() { 
    } 

    public Dept(byte deptno) { 
     this.deptno = deptno; 
    } 

    public Dept(byte deptno, String dname, String loc, Set<Emp> emps) { 
     this.deptno = deptno; 
     this.dname = dname; 
     this.loc = loc; 
     this.emps = emps; 
    } 

    public byte getDeptno() { 
     return this.deptno; 
    } 

    public void setDeptno(byte deptno) { 
     this.deptno = deptno; 
    } 

    public String getDname() { 
     return this.dname; 
    } 

    public void setDname(String dname) { 
     this.dname = dname; 
    } 

    public String getLoc() { 
     return this.loc; 
    } 

    public void setLoc(String loc) { 
     this.loc = loc; 
    } 

    public Set<Emp> getEmps() { 
     return this.emps; 
    } 

    public void setEmps(Set<Emp> emps) { 
     this.emps = emps; 
    } 

} 
+0

Является ли класс 'Emp' сериализуемым? Можете ли вы показать обзор его определения? –

+1

Похоже, вы используете какую-то форму плетения байткода - возможно, АОП? - и это то, что не получается сериализованным. – parsifal

ответ

1

Проверьте, если класс Emp является serialiable.

Еще одна потенциальная проблема (поскольку вы используете Hibernate - заметили автоматически сгенерированный комментарий) может быть из-за прокси, которые изменяют ваш байт-код, в результате чего GWT не может сериализовать его. Как уже упоминалось здесь - http://code.google.com/webtoolkit/articles/using_gwt_with_hibernate.html

Смежные вопросы