Java RMI 解组异常
Java RMI Unmarshall Exception
我正在调用这个远程方法:
RespuestaError<Co> cox(String a, String b, String c, int d) throws RemoteException;
我遇到了这个错误
java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: jtwitter.base.RespuestaError
它说 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)
{
//...
}
//...
}
其中 Error
是一个枚举。
在这种特殊情况下 T
是:
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)
{
//...
}
//...
}
而美国 class 是:
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)
{
//...
}
//...
}
Everithing extends Serializable 我没有看到错误。
代码没有错误。问题是我 运行 不是我想的代码 运行。清理并重新编译所有文件可解决此问题。
我正在调用这个远程方法:
RespuestaError<Co> cox(String a, String b, String c, int d) throws RemoteException;
我遇到了这个错误
java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: jtwitter.base.RespuestaError
它说 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)
{
//...
}
//...
}
其中 Error
是一个枚举。
在这种特殊情况下 T
是:
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)
{
//...
}
//...
}
而美国 class 是:
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)
{
//...
}
//...
}
Everithing extends Serializable 我没有看到错误。
代码没有错误。问题是我 运行 不是我想的代码 运行。清理并重新编译所有文件可解决此问题。