2011-01-10 57 views
1

我刚刚用java rmi完成了一个小程序,不知何故它不起作用。每次我想启动服务器,我都会收到MarshalException。是否有任何重要的一点,我应该知道他们如何实现远程方法调用的接口?我认为有可能创建一个实现,但也包含一些额外的方法,如实现类中的构造函数或私有变量。如何避免Java RMI的MarshalException?

不应该这样工作吗?

问候

+0

如果我的回答没有解决问题,请提供有关异常的更多详细信息 - 例如整个异常(包括消息和堆栈跟踪);) – Bozho 2011-01-10 14:46:53

回答

2

为了能够传递你需要让他们实现Serializable对象。也许有一个默认的(无参数)构造函数(这不是序列化的必要条件)

正如helios指出的那样,不仅是类,还有所有的字段层次结构(字段类和字段的类)必须Serializable

+2

而且您必须测试您的类,试图序列化它们(它通过RMI服务使用它们)。如果您的类实现了Serializable,但它包含一个不可序列化(非暂时)字段,kaboom! – helios 2011-01-10 15:12:22

1

造成的: 抛出java.lang.ClassNotFoundException: vsys.ue04.server.RemoteChargeImplementation

有你的问题。客户需要该课程。