`
lanqiu17
  • 浏览: 17780 次
社区版块
存档分类
最新评论

rmi简单使用

    博客分类:
  • rmi
rmi 
阅读更多
最近在做桌面应用,要使用rmi,于是学习下rmi的简单使用.
服务端:
package rmi.service;

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

//此为远程对象调用的接口,必须继承Remote类  
public interface PersonService extends Remote {
	public List<PersonEntity> GetList() throws RemoteException;
	public String get(String val) throws RemoteException;
}



package rmi.service;

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface AnimalService extends Remote {

	public String getName(String dog) throws RemoteException;
}

package rmi.serviceImpl;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

import rmi.service.AnimalService;

public class AnimalServiceImpl extends UnicastRemoteObject implements AnimalService {

	public AnimalServiceImpl() throws RemoteException {
		super();
	}

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	public String getName(String dog) throws RemoteException {
		return "reci dog :" + dog;
	}

}

package rmi.serviceImpl;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.LinkedList;
import java.util.List;
import rmi.model.PersonEntity;
import rmi.service.*;

//此为远程对象的实现类,须继承UnicastRemoteObject  
public class PersonServiceImpl extends UnicastRemoteObject implements
		PersonService {
	public PersonServiceImpl() throws RemoteException {
		super();
		// TODO Auto-generated constructor stub
	}

	@Override
	public List<PersonEntity> GetList() throws RemoteException {
		// TODO Auto-generated method stub
		System.out.println("Get Person Start!");
		List<PersonEntity> personList = new LinkedList<PersonEntity>();

		PersonEntity person1 = new PersonEntity();
		person1.setAge(25);
		person1.setId(0);
		person1.setName("Leslie");
		personList.add(person1);

		PersonEntity person2 = new PersonEntity();
		person2.setAge(25);
		person2.setId(1);
		person2.setName("Rose");
		personList.add(person2);

		return personList;
	}

	@Override
	public String get(String val) throws RemoteException {
		System.out.println("receive data:"+val);
		return "server>>: hello client";
	}

}


package rmi.model;

import java.io.Serializable;

//注意对象必须继承Serializable  
public class PersonEntity implements Serializable {
	private int id;
	private String name;
	private int age;

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

	public int getId() {
		return id;
	}

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

	public String getName() {
		return name;
	}

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

	public int getAge() {
		return age;
	}
}


package rmi.remotingservice;

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

import rmi.service.*;
import rmi.serviceImpl.*;

public class Program {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			PersonService personService = new PersonServiceImpl();
			
			AnimalService animalService = new AnimalServiceImpl();
			// 注册通讯端口
			LocateRegistry.createRegistry(6600);
			// 注册通讯路径
			Naming.rebind("rmi://0.0.0.0:6600/PersonService", personService);
			
			Naming.rebind("rmi://0.0.0.0:6600/AnimalService", animalService);
			
			System.out.println("Service Start!");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
 

 客户端:
package rmi.remotingclient;

import java.rmi.Naming;
import java.util.List;
import rmi.model.PersonEntity;
import rmi.service.*;

public class Program {
	public static void main(String[] args) {
		try {
			// 调用远程对象,注意RMI路径与接口必须与服务器配置一致
			PersonService personService = (PersonService) Naming
					.lookup("rmi://192.168.0.193:6600/PersonService");
			
			AnimalService animalService = (AnimalService) Naming
			.lookup("rmi://192.168.0.193:6600/AnimalService");
			List<PersonEntity> personList = personService.GetList();
			for (PersonEntity person : personList) {
				System.out.println("ID:" + person.getId() + " Age:"
						+ person.getAge() + " Name:" + person.getName());
			}
			String val = personService.get("hello server");
			System.out.println(val);
			System.out.println(animalService.getName("jack"));
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}
}
 
 打印信息,我就不上传了。需要的朋友可以自己试下。
分享到:
评论

相关推荐

    JAVA RMI简单例子

    这个"JAVA RMI简单例子"旨在帮助我们深入理解RMI的基本原理和实现步骤。 RMI的核心概念包括远程接口、远程对象和RMIC编译器。首先,我们需要定义一个远程接口,该接口声明了可以在远程服务器上执行的方法。这些方法...

    Spring Rmi使用文档

    Spring RMI 提供了一种简单有效的方式来管理和使用 RMI 服务。它极大地简化了 RMI 的开发流程,使得开发者能够更加专注于业务逻辑而非底层通信细节。对于需要跨 JVM 或跨网络进行远程调用的项目来说,Spring RMI 是...

    spring RMI简单例子

    在这个简单的例子中,我们将深入理解Spring RMI的工作原理以及如何实现一个基本的Spring RMI应用。 首先,让我们了解RMI的基本概念。RMI允许Java对象在不同的JVM之间进行通信,仿佛它们都在同一台机器上。它通过...

    spring中使用RMI

    总的来说,Spring集成RMI提供了一种简单、可管理的方式来创建和使用分布式服务。通过Spring的配置,我们可以轻松地在客户端和服务器之间建立连接,实现远程方法调用,提高应用的可扩展性和灵活性。理解并熟练运用...

    RMI简单实例RMI简单实例

    RMI在Java中提供了一种强大的分布式计算模型,使得对象之间的远程通信变得简单且高效。通过定义远程接口、实现远程对象、在服务器端注册以及在客户端调用这些步骤,可以构建起一个完整的RMI系统。在实际应用中,RMI...

    Java RMI 简单示例

    总结来说,Java RMI简单示例主要展示了以下知识点: 1. **远程接口**:定义了远程方法的签名,需要继承`Remote`接口。 2. **远程对象**:服务器端的类实现远程接口,并继承`UnicastRemoteObject`,以支持远程调用。 ...

    java RMI简单Demo

    Java RMI的使用有助于构建可扩展、模块化的分布式系统,但需要注意的是,它并不适合所有场景,特别是在高并发和大流量的情况下,可能需要考虑其他更高效的通信机制,如RMI的替代品如Java的JMS(Java Message Service...

    rmi简单例子

    根据提供的文件信息,本文将详细解释RMI(远程方法调用)的概念、工作原理以及一个简单的RMI示例。RMI是一种Java技术,允许在不同的Java虚拟机(JVM)之间进行远程过程调用。 ### RMI简介 RMI是Java平台提供的一种...

    java中的RMI程序

    在这个源程序例子中,我们将深入探讨RMI的实现以及如何结合简单的加密技术来增强系统的安全性。 首先,RMI的基本工作流程包括以下几个步骤: 1. **定义远程接口**:这是RMI程序的核心部分,远程接口定义了可以在...

    简单的RMI程序

    【简单的RMI程序】是一个基于Java RMI(Remote Method Invocation,远程方法调用)技术的小型应用程序,用于实现会议管理功能。在这个项目中,学生或开发者可以学习如何使用RMI来创建分布式系统,使得不同计算机上的...

    对 RMI 的简单理解

    - **简便性**:RMI提供了简单易用的API,简化了分布式应用的开发。 - **透明性**:调用远程对象的方法就像调用本地对象一样,无需关心网络通信细节。 - **跨平台**:基于Java的特性,RMI可以运行在任何支持Java的...

    java 简单RMI 会议功能实现

    在这个"java简单RMI会议功能实现"的例子中,我们将探讨如何构建一个基于RMI的分布式会议议程服务,提供会议查询、增加和删除的接口。 首先,让我们了解RMI的基本组件和工作原理: 1. **远程接口(Remote Interface...

    java简单示例rmi

    一个简单的RMI示例步骤如下: 1. 定义远程接口,如: ```java import java.rmi.Remote; import java.rmi.RemoteException; public interface MyRemoteInterface extends Remote { String doSomething(String ...

    RMI的简单完整例子

    下面将详细解释RMI的基本概念、工作原理以及如何创建一个简单的RMI应用。 1. **RMI基本概念** - **远程对象**:RMI的核心是远程对象,它是驻留在网络上另一台计算机上的Java对象,可以通过网络调用其方法。 - **...

    java rmi 简单易懂的实例

    通过这个简单的实例,学习者可以了解到Java RMI的基本工作流程,以及如何在实践中部署和使用远程对象。深入研究后,还可以探索更复杂的场景,如并发调用、安全性控制、容错机制等,以构建更加健壮和高效的分布式系统...

    rmi使用实例

    ### RMI 使用实例详解 #### 一、RMI 概述 远程方法调用(Remote Method Invocation,简称 RMI)是 Java 平台提供的一种分布式计算技术,它允许开发者创建可跨网络调用的方法,就像在本地调用一样简单。RMI 的设计...

    RMI使用范例

    RMI是分布式计算中的关键技术,使得开发者可以构建跨越多个网络节点的分布式系统,就像操作本地对象一样简单。 **RMI的基本概念** 1. **远程接口(Remote Interface)**:远程接口定义了可以在远程对象上调用的方法...

    rmi.rar_rmi实现方式_rmi简单的实现

    RMI提供了简单易用的API,降低了分布式编程的难度,但同时也存在一些挑战: - 性能:RMI通信涉及到序列化和反序列化,可能影响性能。 - 安全性:RMI默认不提供安全控制,需要额外的安全策略配置。 - 可靠性:网络...

    java rmi java rmi

    根据提供的文件信息,我们...通过以上步骤,我们成功地实现了一个简单的RMI应用程序,其中包括了远程接口的定义、远程对象的实现、服务器端和客户端的代码实现。这个例子展示了如何利用RMI技术来构建分布式应用程序。

    java RMI简单例子

    了解并掌握这些基本概念和操作,你就可以开始尝试"java RMI简单例子",逐步深入理解RMI的使用。在实践中,你可以创建一个简单的远程服务,例如一个远程计算器,体验RMI如何让不同JVM上的代码协同工作。这将有助于你...

Global site tag (gtag.js) - Google Analytics