有关RMI的一些疑问

dwx159 2013-06-08 08:54:45
假设客户端A想要调用服务器B上的一个类C(或者他的方法),那么,客户端就必须有C类(C.class),不然就会出现异常。
我想问,既然客户端都有了C类了,那么为什么不可以直接编个代码调用C呢?还用的着远程调用那么麻烦吗?
...全文
90 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fei1710 2013-06-09
  • 打赏
  • 举报
回复
客户端需要的只是需要接口而已,RMI框架会帮你生成代理类,其实就是一个远程PRC调用。
dwx159 2013-06-08
  • 打赏
  • 举报
回复
引用 1 楼 kittaaron 的回复:
不是所有的工作都能在客户端完成。你调用的程序可能是连接到远程服务器上去做一些操作(比如连接远程数据库,你本地程序不可能连接)。比如某公司开放API的包,它跟自己公司内部的db有交互,但是你下载下来的程序不可能是直接跟它公司内部的db连接。
上面是我个人理解,RMI程序写得比较少,如果不对,欢迎指正


所以说,客户端还是需要有所要调用的程序咯,只不过这个程序在服务端才可能完成某些操作,所以才需要远程调用,是这样吗?
还是不爽啊,居然需要把所有要用的程序给客户端,但我看书上有稍微提到一种叫动态下载的方法,大概是说给客户端一个哪里可以找到所需要程序的URL,登它需要某个程序时再让客户端从Web服务器下载下来(前提当然是这个服务器是专门用来储存提供这些程序的),不知道这种方法是不是专门解决这个问题的....
kittaaron 2013-06-08
  • 打赏
  • 举报
回复
不是所有的工作都能在客户端完成。你调用的程序可能是连接到远程服务器上去做一些操作(比如连接远程数据库,你本地程序不可能连接)。比如某公司开放API的包,它跟自己公司内部的db有交互,但是你下载下来的程序不可能是直接跟它公司内部的db连接。 上面是我个人理解,RMI程序写得比较少,如果不对,欢迎指正
Ch01:俄罗斯方块游戏的实现 安装JDK,并正确配置环境变量(如果有疑问,可以参考任何一本java入门书籍)。打开Eclipse(可以到http://www.eclipse.org/现在官方最新版,Eclipse本身是免费软件),导入ch01下的java项目,然后保存、运行game.ErsBlocksGame类即可。 Ch02:俄罗斯方块双人对战的实现 安装JDK,并配置环境变量,打开Eclipse,导入java项目ch02,然后保存、运行game.ErsBlocksGame 类即可。 Ch03:五子棋对战游戏的实现 安装JDK、配置环境变量,打开Eclipse导入ch03项目,运行server.chessServer类启动服务器端,运行client.chessClient类启动客户端。目前只支持两个客户端进行网络对战,多个玩家还有如线程同步问题等。两个客户端可以在同一台电脑上运行。 Ch04:多媒体展示系统 –网络游鱼 安装JDK、配置环境变量,打开Eclipse导入ch04项目,运行server.FishServer类启动服务器端,运行java client.SwimFish类启动客户端。注意,同时在多台机上运行客户端才能显示出网络游鱼的效果,在同一台机上打开多个客户端窗口不能看到该效果。 Ch05:野人与传教士过河问题的实现 安装JDK、配置环境变量,打开Eclipse导入ch05项目,运行主类crossriver.CrossRiver即可启动演示程序。 Ch06:人机对战五子棋游戏的实现 安装JDK,配置环境变量,双击compile.bat 批处理文件编译项目,双击runFive.bat批处理文件可启动项目。 Ch07:蚁群算法的模拟实现 安装JDK,配置环境变量,导入ch07项目,一般情况下直接保存、运行ant.UI即可启动程序。如果不能运行,将ch07文件夹下的swt.jar加入构建路径,然后在运行中的JVM参数中加入-Djava.library.path="dll所在目录的绝对路径"即可。 也可以在命令行下直接运行该程序,假设ch07文件夹放在D盘跟目录。则在cmd下切换到ch07文件夹下,运行如下命令即可启动程序: java -cp D:\ch07\swt.jar;.; -Djava.library.path=D:\ch07 ant.UI ch08:SchoolEbay的实现 安装JDK,配置环境变量,安装ant和tomcat,并配置相应环境变量,不清楚的读者可以参见其文档。安装SQL Server 2000或更高版本,注意SQL Server 2000必须打sp3补丁,否则无法监听端口,客户端不能连接。 然后SchoolEbay\database目录下的数据库文件附加到Sql Server,具体操作是打开企业管理器,在左边的树状列表中右击数据库,在弹出的快捷菜单中选择“所有任务”|“附加数据库”命令,再选择要附加的数据库文件即可。 打开控制台(运行中输入cmd),将目录转到SchoolEbay所在目录,输入ant命令来编译打包程序(编译前请修改datasource下的Constants.java文件,将其中的username和passoword修改为SQL Server的用户名和密码)。将生成的SchoolEbay.war添加到Tomcat的webapps目录下,并启动Tomcat、启动Sql Server。访问http://localhost:8080/SchoolEbay/index.jsp,可启动本项目。 Ch09:Ajax技术在网上教学平台的应用 安装JDK,配置环境变量,安装Tomcat、SQL Server并进行相应配置。创建数据库Ajax,然后使用sql目录下的ajaxbak文件还原数据库。为Eclipse安装MyEclipse插件。使用Eclipse导入项目ch09, 在src/config.properties中配置数据库连接信息, 然后部署项目、启动tomcat。 访问http://localhost:8080/ajax即可启动本程序。 Ch10:一个简单的编译器实现 安装JDK、配置环境变量,启动Eclipse并导入ch10项目,运行主类calculator.Calculator即可。 Ch11:基于RMI分布计算实例 安装JDK、配置环境变量,编译java源文件(可以用eclipse自动编译也可以手动命令行下编译),然后命令行下运行如下命令启动服务器端: java rmi.NetS 2000 (端口号为2000)

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧