基于java.rmi的RPC远程方法调用
程序员文章站
2022-07-11 18:03:35
...
服务提供者
开启本地服务及注册
package com.jxl.rmi;
import java.rmi.AlreadyBoundException;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;
/**
* @Auther:
* @Date: 2020/8/14 - 08 - 14 - 17:23
* @Description: com.jxl.rmi
* @version: 1.0
*/
public class ServiceMain {
public static void main(String[] args) throws Exception {
//实例化 要暴露的本地方法或接口
ISayService sayService = new SayServiceImpl();
//开启本地服务
ISayService iSayService = (ISayService)UnicastRemoteObject.exportObject(sayService, 666);
//服务注册中心
Registry registry = LocateRegistry.createRegistry(999);
//注册服务
registry.bind("sayService",iSayService);
}
}
服务接口
package com.jxl.rmi;
import java.rmi.Remote;
/**
* @Auther:
* @Date: 2020/8/14 - 08 - 14 - 17:20
* @Description: com.jxl.rmi
* @version: 1.0
*/
public interface ISayService extends Remote {
public String sayHi(String name) throws Exception;
}
接口实现
package com.jxl.rmi;
/**
* @Auther:
* @Date: 2020/8/14 - 08 - 14 - 17:13
* @Description: com.jxl.rmi
* @version: 1.0
*/
public class SayServiceImpl implements ISayService {
public String sayHi(String name){
System.out.println(name);
return name+" 你好!";
}
}
消费方像调用远程方法一样调用本地方法
需把调用服务方的接口放到当前项目中
package com.jxl.rmi;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
/**
* @Auther:
* @Date: 2020/8/14 - 08 - 14 - 17:39
* @Description: com.jxl.rmi
* @version: 1.0
*/
public class CosumenterMain {
public static void main(String[] args) throws Exception {
Registry registry = LocateRegistry.getRegistry(999);
ISayService iSayService = (ISayService)registry.lookup("sayService");
String str = iSayService.sayHi("张三");
System.out.println(str);
}
}
下一篇: 数据的描述性统计
推荐阅读
-
使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务的方法(推荐)
-
html5-websocket基于远程方法调用的数据交互实现
-
Python实现远程调用MetaSploit的方法
-
php 调用远程url的六种方法小结
-
Python基于opencv调用摄像头获取个人图片的实现方法
-
python远程调用rpc模块xmlrpclib的方法
-
在jquery中的ajax方法怎样通过JSONP进行远程调用
-
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
-
Python调用C语言的方法【基于ctypes模块】
-
SQL Server 2008R2 :远程调用失败 的解决方法(全部方法)