2011-01-10 66 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

有你的問題。客戶需要該課程。