javarmi的一个简单实例

author author     2022-08-26     590

关键词:

参考网站  http://www.cnblogs.com/leslies2/archive/2011/05/20/2051844.html

实体类PersonEntity

package net.cs30.rmi;

import java.io.Serializable;

/**
 * Created by caochenghua on 2017/4/4.
 */
public class PersonEntity implements Serializable {
    private int id;
    private String name;
    private int age;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

  服务接口PersonService

package net.cs30.rmi;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.List;

/**
 * Created by caochenghua on 2017/4/4.
 */
public interface PersonService extends Remote {
    public List<PersonEntity> GetList() throws RemoteException;
}

  服务接口实现PersonServiceImpl

package net.cs30.rmi;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.LinkedList;
import java.util.List;

/**
 * Created by caochenghua on 2017/4/4.
 */
public class PersonServiceImpl extends UnicastRemoteObject implements PersonService {
    protected PersonServiceImpl() throws RemoteException {
        super();
    }

    @Override
    public List<PersonEntity> GetList() throws RemoteException {
        System.out.println("Get Person Start!");
        List<PersonEntity> personEntityList=new LinkedList<>();
        PersonEntity personEntity=new PersonEntity();
        personEntity.setAge(10);
        personEntity.setId(0);
        personEntity.setName("cao");
        personEntityList.add(personEntity);

        PersonEntity personEntity2=new PersonEntity();
        personEntity2.setAge(10);
        personEntity2.setId(123);
        personEntity2.setName("horizon");
        personEntityList.add(personEntity2);

        return personEntityList;
    }
}

  服务器端测试代码Program

package net.cs30.rmi;

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

/**
 * Created by caochenghua on 2017/4/4.
 */
public class Program {
    public static void main(String[] args) {
        try {
            PersonService personService=new PersonServiceImpl();
            //注册通讯端口
            LocateRegistry.createRegistry(6600);
            //注册通讯路径
            Naming.rebind("rmi://127.0.0.1:6600/PersonService",personService);
            System.out.println("Service Start!");
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

  客户端测试代码ProgramClient

package net.cs30.rmi;

import java.rmi.Naming;
import java.util.List;

/**
 * Created by caochenghua on 2017/4/4.
 */
public class ProgramClient {
    public static void main(String[] args) {
        try {
            PersonService personService=(PersonService) Naming.lookup("rmi://127.0.0.1:6600/PersonService");
            List<PersonEntity> personEntityList=personService.GetList();
            for (PersonEntity personEntity:personEntityList){
                System.out.println("ID:"+personEntity.getId()+" Age:"+personEntity.getAge()+" Name:"+personEntity.getName());
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

运行结果

服务器端输出

技术分享

客户端输出

技术分享

 

对javarmi的认识

RMI的定义RPC(RemoteProcedureCall):远程方法调用,用于一个进程调用另一个进程中的过程,从而提供了过程的分布能力。RMI(RemoteMethodInvocation):远程方法调用,即在RPC的基础上有向前迈进了一步,提供分布式对象间的通讯。允许运行... 查看详情

javarmi远程通讯

  分布式计算系统要求运行在不同地址空间不同主机上的对象互相调用,在Java里提供了完整的sockets通讯接口,但sockets要求客户端和服务端必须进行应用级协议的编码交换数据,采用sockets是非常麻烦的。  一个代替Sockets的协... 查看详情

javarmi

1.RMI介绍 1.1RMI概念 1.2RMI构成2.API介绍 2.1关系图 2.2类介绍3.实例 参考文献:  1.https://blog.csdn.net/suifeng3051/article/details/48469523    2.https://blog.csdn.net/lmy86263/article/de 查看详情

javarmi技术及其spring封装的使用

javaRMI即java远程服务调用,用于各个子系统之间的服务调用。最近应用到了JAVARMI技术,所以总结一下RMI的使用,另外EJB的实现也是以JavaRMI为基础核心的。RMI远程方法调用,可以跨机器通过网络调用,不过JavaRMI只支持两边都是Java... 查看详情

javarmi利用入门学习

Windows中遇到了JavaRMI,反弹又不那么方便,这时该如何利用呢?It’saquestion。正好加强Java学习了。0X00预备知识理解JavaRMI——Java远程调用提供了不同机器之间进行对象方法访问的能力,这样的构架允许一台机器的对象访... 查看详情

rmi简单用例,简单有效

     JavaRMI指的是远程方法调用(RemoteMethodInvocation)。它是一种机制,能够让在某个Java虚拟机上的对象调用另一个Java虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。使用spring对RMI的... 查看详情

javarmi

RMI 相关知识RMI全称是Remote Method Invocation-远程方法调用,Java RMI在JDK1.1中实现的,其威力就体现在它强大的开发分布式网络应用的能力上,是纯Java的网络分布式应用系统的核心解决方案之一。其实它可以被看作是... 查看详情

一个简单jdk动态代理的实例

动态代理的步骤:创建一个实现了InvocationHandler接口的类,必须重写接口里的invoke()方法。创建被代理的类和接口通过Proxy的静态方法newProxyInsatance(ClassLoaderloader,Class[]interfaces,InvocationHandler,handler)来创建一个代理通过代理来调用... 查看详情

javarmi分布式原理和应用

  RMI(RemoteMethodInvocation)是JAVA早期版本(JDK1.1)提供的分布式应用解决方案,它作为重要的API被广泛的应用在EJB中。随着互联网应用的发展,分布式处理任务也随之复杂起来,WebService也得到普遍的推广和应用。   &n... 查看详情

javarmi(代码片段)

查看详情

一个简单的ajax实例

创建一个简单的XMLHttpRequest,从一个TXT文件中返回数据。来源于菜鸟教程<!DOCTYPEhtml><html><head><metacharset="utf-8"><script>functionloadXMLDoc(){ varxmlhttp; if(window.XMLHttpRequest) { //IE7+,Fi 查看详情

面试题思考:javarmi与rpc,jms的比较

RPC:(RemoteProcedureCall)   被设计为在应用程序间通信的平台中立的方式,它不理会操作系统之间以及语言之间的差异。支持多语言RMI:(RemoteMethodInvocation) RPC的Java版本,EJB的基础技术 RMI采用JRMP(JavaRemoteMethodProt... 查看详情

vue2.0基础学习---一个简单的实例学习

 看完vue的官方文档,再做一个简单的实例是最好不过了,既能巩固我们所学的知识,又能学以致用。infoq上推荐了一篇文章,面向重度jQuery开发者的Vue.js介绍,它是老外写的,用vue做了一个简单的实例,非常适合学完vue文档来练... 查看详情

$python爬虫系列——一个简单的爬虫实例

本文主要实现一个简单的爬虫,目的是从一个百度贴吧页面下载图片。1.概述本文主要实现一个简单的爬虫,目的是从一个百度贴吧页面下载图片。下载图片的步骤如下:获取网页html文本内容;分析html中图片的html标签特征,用... 查看详情

写一个最简单的gulp实例

今天写了一个简单的gulp实例分享给大家!比较适合gulp初学者首选:看看gulp官网了解一些基本的定义   官网地址: http://www.gulpjs.com.cn/搭建node环境安装gulp 自行百度吧!文件目录dist:打包后文件所在目录src:源文件目... 查看详情

一个简单的jsp+servlet实例,实现简单的登录

开发环境myeclipse+tomcat61、先创建webproject,项目名为RegisterSystem,2、在WebRoot目录下创建login.jsp文件,只需修改body中的内容,如下所示:<body>    <formaction="login">    username:< 查看详情

浅谈javarmi

浅谈JAVA-RMIserverdemo:packagecom.ray.rmi;importjava.rmi.Naming;importjava.rmi.Remote;importjava.rmi.RemoteException;importjava.rmi.registry. 查看详情

一个简单的jsp+servlet实例,实现简单的登录

开发环境myeclipse+tomcat5.5一、先创建webproject在菜单栏选File->New->Web->DynamicWebProjectProjectname我命名为JavaWebTest01 (可以随便起)TargetrunTime 选我们之前tomcat配置的版本。一直NEXT到Finish 二.新建jsp页面1、在WebCont 查看详情