請教一個rmi分佈運算或者傳遞物件的問題!

interstudy發表於2006-02-08
我曾經在rmi伺服器所在機器上寫了一個JLabel,JLabel內部使用一個絕對路徑指向本機一個圖片檔案。然後在客戶端applet中用遠端藉口呼叫JLabel物件,可以顯示這個帶圖片的標籤,請問:原理是不是伺服器端把執行JLabel這個物件的結果以位元組流的方式傳遞到了客戶端?
基於以上測試,我開始寫我的程式。
我的任務是做b/s結構的電子地圖系統,想透過applet顯示和編輯伺服器上的電子地圖檔案。
目前的困難是,使用購買的開發元件做二次開發,因為其中有個Layer(圖層)類用來封裝電子地圖檔案,要求傳遞的是”絕對路徑!“,而電子地圖檔案很大很多,傳遞到客戶端不安全,速度慢,也很麻煩。所以想在伺服器上執行,把結果顯示在客戶端applet中。
所以我寫了個介面實現類,它接受引數後返回一個Layer,這個Layer類內部用一個絕對路徑指向伺服器上的電子地圖檔案,本以為可以正常顯示,結果發現我把applet在rmi伺服器上執行顯示正常,但真正在其他機器上執行時就找不到電子地圖檔案了,這和我以前用ObjectIOStream傳遞物件得到的結果是一樣的,成了純粹傳遞物件到客戶端執行。請問是哪裡出現問題了,難道是因為電子地圖和普通圖片的資料結構差異造成的嗎?為什麼先前用圖片做的測試顯示正常,分佈運算的原理到底是什麼,難道我必須把電子地圖檔案下載到客戶端執行嗎?或者把伺服器端的執行結果抓圖傳遞到客戶端嗎?(很多地圖釋出工具都是這麼做的,如果這樣,客戶端無法編輯電子地圖) 請教!

相關文章