`
onlyor
  • 浏览: 381178 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

RMI 实例

    博客分类:
  • java
rmi 
阅读更多

RMI 实例

 

package rmi.train;

import java.io.Serializable;

public class Animal implements Serializable, Cloneable {

    private static final long serialVersionUID = -1858518369668584532L;

    private String            username;

    private String            password;


    public String getUsername() {

        return username;
    }


    public void setUsername(String username) {

        this.username = username;
    }


    public String getPassword() {

        return password;
    }


    public void setPassword(String password) {

        this.password = password;
    }

}

 

package rmi.train;

import java.io.Serializable;
import java.rmi.Remote;
import java.rmi.RemoteException;

public interface IAnimalService extends Remote, Serializable {

    String getMonkeyName() throws RemoteException;

    Animal getAnimal() throws RemoteException;

}

 

package rmi.train;

import java.rmi.RemoteException;

public class AnimalServiceImp implements IAnimalService {

    /**
     * 
     */
    private static final long serialVersionUID = -4070602245046749074L;


    public AnimalServiceImp() {

    }


    @Override
    public String getMonkeyName() throws RemoteException {

        return "I'm Jacky";
    }


    public Animal getAnimal() throws RemoteException {

        Animal animal = new Animal();
        animal.setUsername("admin");
        animal.setPassword("admin");
        return animal;
    }
}

 

package rmi.train;

import java.rmi.Naming;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;

public class AnimalServer {
    
    final static int port = 1099; //绑定的端口号
    
    final static String serviceName = "animalService"; //服务名称

    /**
     * @param args
     */
    public static void main(String[] args) {

        try {
            IAnimalService obj = new AnimalServiceImp();
            
            /**
             * 1  未测成功
             */
            IAnimalService stub = (IAnimalService) UnicastRemoteObject.exportObject(obj, port); //端口绑定远程对象
            Registry registry = LocateRegistry.getRegistry(port);
            registry.bind(serviceName, stub); //注册服务地址
            System.out.println("Server Start...");
            
            /**
             * 2 测试成功
             */
//            LocateRegistry.createRegistry(port);      
//            Naming.rebind(serviceName, obj); 
            
            System.out.println("Hello Server is ready.");
            Thread.sleep(1000 * 60 *2);
            System.out.println("Hello Server is stop.");
        } catch (Exception e) {
            System.err.println("Server exception: " + e.toString());
            e.printStackTrace();
        }
    }

}

 

package rmi.train;

import java.rmi.Naming;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

public class AnimalClient {

    /**
     * @param args
     */
    public static void main(String[] args) {

        Registry registry = null;
        final String host = "127.0.0.1";
        final String serviceName = "animalService"; //服务名称
        try {
            /**
             * 1 
             */
            System.out.println("registry");
            registry = LocateRegistry.getRegistry(host, AnimalServer.port); //获取远程对象联机注册
            //获取动态代理类
            IAnimalService stub = (IAnimalService) registry.lookup(serviceName);
            //远程调用
            System.out.println("monkey name: " + stub.getMonkeyName());
            stub = null;
            
            /**
             * 2
             */
            System.out.println("Naming");
            String url="rmi://127.0.0.1/" + AnimalServer.serviceName;   
            stub = (IAnimalService)Naming.lookup(url); 
            System.out.println("Animal: " + stub.getAnimal());
            
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}

 

 

 

 

分享到:
评论

相关推荐

    Java RMI实例

    Java RMI实例

    dwr实例操作+rmi实例操作

    6. **RMI实例操作** - **创建远程接口**:例如定义一个名为`Calculator`的接口,包含加减乘除的远程方法。 - **实现远程接口**:实现`Calculator`接口,实现计算逻辑。 - **启动RMI服务**:在服务器端启动RMI服务...

    一个RMI实例

    这个“一个RMI实例”显然是一个供初学者使用的示例项目,可以帮助理解RMI的基本原理和操作流程。 在RMI中,主要有以下几个核心概念: 1. **远程接口(Remote Interface)**:这是定义远程方法的接口,它继承自java...

    中间件实验(rmi实例)

    中间件实验(RMI 实例)是 Java RMI(Remote Method Invocation,远程方法调用)的实验报告,旨在通过实验了解 Java RMI 的机制和开发流程。本实验报告主要介绍了 RMI 的基本概念、实验步骤、实验结果和结论分析等...

    rmi的实例rmi的实例rmi的实例

    在"rmidemo"这个压缩包中,很可能包含了一个完整的RMI实例。通常,它会有一个服务端项目,用于实现和注册远程对象,以及一个客户端项目,用于查找并调用远程对象的方法。具体代码可能如下: - 服务端(Server.java...

    简单的rmi实例下载

    这个简单的RMI实例可能是为了帮助初学者理解RMI的基本工作原理和实现步骤。 RMI的核心概念是客户端和服务端。服务端通过RMI注册一个远程接口,该接口定义了可供客户端调用的方法。客户端则通过RMI机制获取到服务端...

    一个简单的RMI实例

    这个“简单的RMI实例”演示了如何在不依赖像Tomcat这样的Web服务器的情况下实现RMI。下面我们将深入探讨RMI的基本概念、配置过程以及如何创建和运行这个实例。 ### RMI基本概念 1. **远程对象(Remote Object)**:...

    JAVARMI实例[文].pdf

    在Java RMI实例中,我们通常会经历以下几个步骤: 1. **创建远程接口**:首先,我们需要定义一个远程接口,这个接口需要扩展`java.rmi.Remote`。远程接口中的所有方法都需要抛出`RemoteException`,这是因为远程...

    Java分布式之RMI实例教程

    ### Java分布式之RMI实例教程知识点详解 #### 一、RMI基础知识介绍 **RMI (Remote Method Invocation)** 是一种Java技术,用于实现分布式应用程序之间的远程过程调用。通过RMI,开发者可以在不同的JVM之间调用方法...

    最最简单的RMI实例

    总结一下,这个简单的RMI实例展示了如何创建一个远程接口,实现该接口,启动服务器以导出远程对象,以及编写客户端代码进行调用。RMI的实现包括了接口定义、实现、服务器注册和客户端调用四个关键步骤。在实际应用中...

    rmi实例(Spring整合)

    **标题:“RMI实例(Spring整合)”** 远程方法调用(Remote Method Invocation,简称RMI)是Java中的一种机制,允许一个Java对象在某个Java虚拟机(JVM)上执行另一个Java对象的方法,即使该对象位于不同的网络...

    JAVA分布式之RMI实例教程网络通信原理[收集].pdf

    JAVA分布式之RMI实例教程网络通信原理[收集].pdf

    rmi实例详解

    【RMI实例详解】 远程方法调用(RMI,Remote Method Invocation)是Java JDK 1.1引入的一种分布式对象技术,旨在简化分布在不同环境下的Java应用程序间的通信。RMI允许对象在不同的Java虚拟机(JVM)之间进行交互,...

    JAVA RMI 实例

    java rmi小例子源代码 ,运行Reg.java ,再执行Client客户端代码就能看效果。如果在不同jvm下执行,注意接口定义包路径客服端和服务端必须保持一致。 客服端包含文件有服务端接口的定义文件。

    java远程调用rmi实例

    本实例将深入讲解如何使用Java RMI在Linux环境中启动远程服务,并在Windows环境下进行操作。 首先,理解RMI的基本原理:RMI系统由两部分组成,客户端和服务器端。服务器端暴露远程接口,客户端通过引用这个远程接口...

    一个相当经典的RMI实例源代码及详细说明

    RMI(Remote Method Invocation,远程方法调用)是Java中的一种技术,用于构建分布式系统,使得在一台机器上的对象能够调用另一台机器上对象的方法,就像它们在同一个进程中一样。RMI使得开发者可以创建跨网络的、...

    一个java RMI应用实例 构建简单的RMI应用

    创建客户端RMI调用服务端的应用程序。 启动服务端,再启动客户端,测试是否调用成功。 如果客户端和服务端不在同一台电脑上,则需要对刚才定义的服务类采用rmic 编译一个客户端的框架类_stub并拷贝到客户端的类...

    RMI接口 实例演示

    RMI远程调用开发实例,必须打开防火墙。 必须要在jdk安装目录D:\Java\jdk1.7\jre\lib\security javaws.policy文件加上 grant { permission java.security.AllPermission "", ""; };

Global site tag (gtag.js) - Google Analytics