Java RMI解组异常

Java RMI解组异常,java,serialization,rmi,Java,Serialization,Rmi,我正在调用此远程方法: RespuestaError<Co> cox(String a, String b, String c, int d) throws RemoteException; 这意味着RespuestaError不可序列化,但它是: public class RespuestaError<T extends Serializable> implements Serializable { private static final long se

我正在调用此远程方法:

RespuestaError<Co>  cox(String a, String b, String c, int d) throws RemoteException;
这意味着RespuestaError不可序列化,但它是:

public class RespuestaError<T extends Serializable> implements Serializable {

    private static final long serialVersionUID = 8483079015565009698L;

    private T returned;
    private Error error;

    public RespuestaError(T returned, Error error)
    {
      //...
    }

     //...
}
美国班是:

public class Us implements Serializable {

    private static final long serialVersionUID = -6725570673833522155L;

    private int a;
    private String b; 
    private String c;
    private String d;
    private String e;
    private int    f;

    public Us(int a, String b, String c, String d, String e, int f)
    {
        //...
    }

    //...
}

我没有看到任何错误

代码中没有错误。问题是我没有运行我认为正在运行的代码。清理和重新编译所有文件解决了这个问题。

我认为,
private T返回的
private错误
也应该是
implements Serializable
。我碰巧刚刚完成了一个RMI程序,我只是尝试了与您所做的非常类似的操作,我没有看到任何错误。也许你要确保所有文件都被重新编译,并确保导入java.io.Serializable?@Gordon Liang恐怕你是对的。不需要公共无参数构造函数。是我的错误,我误解了文件。谢谢。@Little Santic欢迎您。我一开始也怀疑。但事实并非如此。有一个更明确的规范:您没有运行您认为正在运行的代码。清理、构建、部署、重新测试。
public class Co implements Serializable {

    private static final long serialVersionUID = 2759254657635643074L;

    private String  a;
    private int     b;
    private Us  c;

    public Co(String a, int b, Us c)
    {
        //...
    }

    //...
}
public class Us implements Serializable {

    private static final long serialVersionUID = -6725570673833522155L;

    private int a;
    private String b; 
    private String c;
    private String d;
    private String e;
    private int    f;

    public Us(int a, String b, String c, String d, String e, int f)
    {
        //...
    }

    //...
}