RMI服务提供者注册服务的2种方式
来源:互联网 发布:linux系统下安装软件 编辑:程序博客网 时间:2024/04/20 07:23
第1种方式:
1. 使用UnicastRemoteObject类的静态方法exportObject将一个Remote对象(服务提供者)export给RMI runtime,这样之后,才可以接受远程调用,并返回一个用于传送给client的stub对象
Server obj = new Server();
Hello stub = (Hello) UnicastRemoteObject.exportObject(obj, 0);
注:Server对象是Remote的,但不是Serializable的
2. For a caller (client, peer, or applet) to be able to invoke a method on a remote object, that caller must first obtain a stub for the remote object. For bootstrapping, Java RMI provides a registry API for applications to bind a name to a remote object's stub and for clients to look up remote objects by name in order to obtain their stubs.
Caller要调用一个远程对象的方法,就先要有该对象的引用,该引用可以是方法调用的参数,可以是一个返回值,比如在RMI中使用工厂模式时就是使用了方法的返回值。
Registry registry = LocateRegistry.getRegistry();
registry.bind("Hello", stub);
注:LocateRegistry.getRegistry()只是返回一个stub,并不检查rmiregistry是否在运行,如果没有运行就会抛出RemoteException
LocateRegistry.getRegistry()返回一个实现了java.rmi.registry.Registry 的stub,并向本机rmiregistry监听的默认端口1099发出调用请求。
第2种方式
1. 让服务提供者继承UnicastRemoteObject ,然后在lauch code中使用如下函数
Naming.rebind
代码如下:
Hello h = new HelloImpl();
Naming.rebind("hello",h);
其中HelloImpl的声明如下:
public class HelloImpl extends UnicastRemoteObject implements Hello
问题:这两种实现方式的原理各是什么?有什么差异?
- RMI服务提供者注册服务的2种方式
- 八、注册服务提供者
- java RMI 注册服务
- 【dubbo】服务提供者运行的三种方式
- RMI几种发布和引用服务的方式
- JNDI服务提供者连接工厂之RegistryContextFactory(RMI)
- 将服务提供者和服务消费者注册到eureka server
- rmi 服务2
- laravel 服务提供者的理解
- JMX 注册MBean服务 MBean RMI
- JMX 注册MBean服务 MBean RMI
- JMX 注册MBean服务 MBean RMI
- springcloud微服务三:Eureka服务治理之注册服务提供者及服务的发现和消费
- Eureka的高可用以及服务提供者、服务消费者集群之间的调用方式
- Eureka的高可用实战:服务提供者、服务消费者集群之间的调用方式
- Linux开机自启动/服务注册的几种方式:
- Android 系统服务的两种注册方式
- rmi服务
- vc小知识
- C/C++ young library 设计与实现 — 内存池
- 我还活着
- 建立程序托盘图标
- 让菜单变灰色and不可用
- RMI服务提供者注册服务的2种方式
- 添加自定义类到类向导
- 在对话框中显示图片
- A b=new B()子类的向上转型
- 书讯 -- Microsoft Windows Workflow Foundation Step by Step
- 笑话
- 命名冲突和static修饰符
- 转:一个很搞笑的面试。
- 我的股票:2007/05/30 净值:2.0301