请教一个rmi分布运算或者传递对象的问题!

06-02-08 interstudy
我曾经在rmi服务器所在机器上写了一个JLabel,JLabel内部使用一个绝对路径指向本机一个图片文件。然后在客户端applet中用远程借口调用JLabel对象,可以显示这个带图片的标签,请问:原理是不是服务器端把运行JLabel这个对象的结果以字节流的方式传递到了客户端?
基于以上测试,我开始写我的程序。
我的任务是做b/s结构的电子地图系统,想通过applet显示和编辑服务器上的电子地图文件。
目前的困难是,使用购买的开发组件做二次开发,因为其中有个Layer(图层)类用来封装电子地图文件,要求传递的是”绝对路径!“,而电子地图文件很大很多,传递到客户端不安全,速度慢,也很麻烦。所以想在服务器上运行,把结果显示在客户端applet中。
所以我写了个接口实现类,它接受参数后返回一个Layer,这个Layer类内部用一个绝对路径指向服务器上的电子地图文件,本以为可以正常显示,结果发现我把applet在rmi服务器上运行显示正常,但真正在其他机器上运行时就找不到电子地图文件了,这和我以前用ObjectIOStream传递对象得到的结果是一样的,成了纯粹传递对象到客户端运行。请问是哪里出现问题了,难道是因为电子地图和普通图片的数据结构差异造成的吗?为什么先前用图片做的测试显示正常,分布运算的原理到底是什么,难道我必须把电子地图文件下载到客户端运行吗?或者把服务器端的运行结果抓图传递到客户端吗?(很多地图发布工具都是这么做的,如果这样,客户端无法编辑电子地图) 请教!

banq
2006-02-10 11:40
可能你的电子地图文件不能序列化,也就是不能变成字节流。你要确证这点。

czwlucky
2008-10-27 18:00
怎么就到此为止了呢?后来呢?。。。