`
流浪鱼
  • 浏览: 1684812 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

UnicastRemoteObject.exportObject使用

    博客分类:
  • java
 
阅读更多

 

public class CalculatorServer implements Calculator {
    public String calculate(String expr) throws RemoteException {
        return expr;
    }
    public void start() throws RemoteException, AlreadyBoundException {
        Calculator stub = (Calculator) UnicastRemoteObject.exportObject(this, 0);
        Registry registry = LocateRegistry.getRegistry();
        registry.rebind("Calculator", stub);
    }
}

 

CalculatorServer是远程对象的Java类。在它的start方法中通过UnicastRemoteObject的exportObject把当前对象暴露出来,使得它可以接收来自客户端的调用请求。再通过Registry的rebind方法进行注册,使得客户端可以查找到。

客户端的实现就是首先从注册表中查找到远程接口的实现对象,再调用相应的方法即可。实际的调用虽然是在服务器端完成的,但是在客户端看来,这个接口中的方法就好像是在当前JVM中一样。这就是RMI的强大之处。

public class CalculatorClient {
    public void calculate(String expr) {
        try {
            Registry registry = LocateRegistry.getRegistry("localhost");
            Calculator calculator = (Calculator) registry.lookup("Calculator");
            String result = calculator.calculate(expr);
            System.out.println(result);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
} 

 

 

 

 

 

分享到:
评论

相关推荐

    Java5.0中RMI的使用

    但在Java 5.0中,我们可以直接使用`UnicastRemoteObject.exportObject()`静态方法,简化了代码。以下是一个简单的服务器启动示例: ```java import java.rmi.registry.Registry; import java.rmi.registry....

    niit java试题

    - **实现类中的代码**:要使一个类能够被远程调用,需要确保该类实现了 `java.rmi.Remote` 接口,并且在某处调用了 `UnicastRemoteObject.exportObject()` 方法来导出远程对象。 - **选项解析**: 1. 在实现类的...

    一个可以运行的RMI例子

    3. **导出远程对象**:通过`UnicastRemoteObject.exportObject()`方法将远程对象导出到网络,获取其`Remote`引用。 ```java MyRemoteInterface remote = new MyRemoteImpl(); Remote stub = UnicastRemoteObject....

    RMI

    远程对象的实现需要继承`java.rmi.server.UnicastRemoteObject`或使用`UnicastRemoteObject.exportObject()`方法来暴露对象。 2. **客户端**:首先,通过RMI注册表查找远程对象的引用,然后就可以调用其上的方法了...

    rmi.rar_rmi

    3. **导出远程对象**:创建`MyRemoteServiceImpl`的实例,然后通过`UnicastRemoteObject.exportObject()`方法导出为远程对象。 ```java MyRemoteServiceImpl service = new MyRemoteServiceImpl(); MyRemoteService...

    RMI入门小结

    4. **导出远程对象**:使用`java.rmi.server.UnicastRemoteObject.exportObject()`方法导出远程对象,生成Stub。 5. **获取远程对象引用**:客户端通过`java.rmi.Naming.lookup()`或`Registry.lookup()`方法获取...

    rmi简单例子

    为了使该对象能够被远程访问,需要使用`UnicastRemoteObject.exportObject()`方法导出对象,并绑定到一个名字上: ```java PerfectTime service = new PerfectTimeImpl("Server Time"); Naming.rebind("//localhost...

    RMI 的全套使用

    stub = (Remote) UnicastRemoteObject.exportObject(dataAllFace, dataPort);// 0表示端口随机生成. if (registry == null) registry = LocateRegistry.createRegistry(port, new ...

    rmi.rar_RMI java

    3. **导出远程对象**:通过调用`UnicastRemoteObject.exportObject()`方法将远程对象导出到网络,这将返回一个引用,可以将其注册到RMI注册表。 4. **注册远程对象**:使用`java.rmi.Naming`类的静态方法`bind()`将...

    Java RMI实验

    在RMI中,此类需要通过`java.rmi.server.UnicastRemoteObject`扩展或使用`UnicastRemoteObject.exportObject()`方法导出,使其成为远程可访问的对象。 `StudentServer.java`是服务器端的程序,负责启动RMI服务并...

    TestOfRMI_java.rar_Java RMI

    5. **服务器端**:服务器端需要启动RMI注册表,并通过`UnicastRemoteObject.exportObject()`方法导出远程对象,将其注册到注册表中。 在这个"TestOfRMI_java"程序中,我们可以预见到以下步骤: - 创建远程接口和它...

    NIIT的考试题目SM2-2

    如果自定义了一个类而不是直接扩展`UnicastRemoteObject`,为了使它成为`RemoteObject`,需要在实现类的构造函数中调用`UnicastRemoteObject.exportObject(this)`方法,将当前实例导出为远程对象。 2. J2EE部署描述...

    吉林大学软件学院服务计算概论第二次作业

    实验要求中提到,你需要清晰解释关键代码的作用,例如 `LocateRegistry.createRegistry()`、`registry.bind()`、`UnicastRemoteObject.exportObject()` 等。同时,你需要自定义远程对象的功能,这可能包括添加业务...

    RMI.rar_rmi

    5. **服务器(Server)**:服务器负责创建远程对象的实例,并将其导出到网络上,通常是通过`UnicastRemoteObject.exportObject(remoteObj)`完成的。 6. ** stubs 和 skeletons**:在早期版本的RMI中,需要手动生成...

    RMI.zip_remote

    5. **导出远程对象**:使用`java.rmi.server.UnicastRemoteObject.exportObject()`方法导出远程对象,使它成为远程可访问的。 6. **查找并调用远程对象**:在客户端,使用`java.rmi.Naming.lookup()`方法查找远程...

    rmi client和server完整代码

    2. 创建并导出远程对象:创建远程对象实例,然后通过`UnicastRemoteObject.exportObject()`方法将其导出,使其可以在网络上被访问。 3. 在注册表中注册:将导出的远程对象注册到RMI注册表中,通常使用`Naming.rebind...

    RMI应用开发小例子源码.rar

    4. **导出服务**:通过`UnicastRemoteObject.exportObject()` 将实现类导出为远程对象,使其可以被远程访问。 5. **创建客户端**:在客户端,使用`Naming.lookup()` 查找并获取服务器端的服务对象。 6. **调用方法**...

    RMI 服务器与客户端源码,很简单,自己做的,适合初学者

    4. **启动服务器**:使用`java.rmi.server.UnicastRemoteObject.exportObject()`方法将远程对象导出到网络,并启动RMI服务器。 客户端操作包括: 1. **查找远程对象**:客户端通过RMI注册表查找远程对象,可以使用...

    JAVARMI远程方法调用简单实例.docx

    3. **注册远程对象**:通过`UnicastRemoteObject.exportObject()`将远程对象暴露给网络,然后在注册服务中绑定该对象。例如,`reg.bind("serviceName", remoteObject);` 4. **客户端调用**:客户端通过注册服务查找...

    rmi学习资料

    1. **注册远程对象**:首先,我们需要创建一个实现了特定接口的远程对象,并使用`UnicastRemoteObject.exportObject()`方法将其导出,这使得远程对象可以被网络访问。然后,将这个远程对象注册到RMI注册表中,这样...

Global site tag (gtag.js) - Google Analytics