通过Java Rmi 的远程方法调用返回一个对象列表,代码如下:
1、Server服务接口
import java.rmi.Remote; import java.rmi.RemoteException; import java.util.List; //须继承Romote类 public interface IStuService extends Remote { public List<Student> getStudet() throws RemoteException; }
2、Server服务接口实现类
import java.rmi.RemoteException; import java.rmi.server.RMIClientSocketFactory; import java.rmi.server.RMIServerSocketFactory; import java.rmi.server.UnicastRemoteObject; import java.util.ArrayList; import java.util.List; //须继承UnicastRemoteObject类 同时要重写构造方法 由于父类的构造方法抛异常了 public class StuServiceImpl extends UnicastRemoteObject implements IStuService { public StuServiceImpl() throws RemoteException { super(); } public StuServiceImpl(int i, RMIClientSocketFactory rmiclientsocketfactory, RMIServerSocketFactory rmiserversocketfactory) throws RemoteException { super(i, rmiclientsocketfactory, rmiserversocketfactory); } public StuServiceImpl(int i) throws RemoteException { super(i); } @Override public List<Student> getStudet() throws RemoteException { List<Student> list = new ArrayList<Student>(); Student s1 = new Student(); s1.setId(1); s1.setName("xxx"); Student s2 = new Student(); s2.setId(2); s2.setName("yyy"); list.add(s1); list.add(s2); return list; } }
3、Server服务发布类
import java.rmi.Naming; import java.rmi.registry.LocateRegistry; public class RmiServer { public static void main(String[] args) { try { IStuService ss = new StuServiceImpl(); // 注册一个通讯端口 LocateRegistry.createRegistry(6666); // 注册一个通讯路径 Naming.rebind("rmi://127.0.0.1:6666/service", ss); System.out.println("Service Start!"); } catch (Exception e) { e.printStackTrace(); } } }
4、Entity实体类(注意:实体类必须实现Serializable接口)
public class Student implements java.io.Serializable { private int id; private String name; 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; } }
5、Client客户端
import java.rmi.Naming; import java.util.List; public class Client { public static void main(String[] args) { try { // 此处不能强制转换为接口的实现类 IStuService ss = (IStuService) Naming .lookup("rmi://127.0.0.1:6666/service"); List<Student> list = ss.getStudet(); for (Student stu : list) { System.out.println(stu.getId() + "--------" + stu.getName()); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
相关推荐
RMI(Remote Method Invocation,远程方法调用)是Java提供的一种分布式计算模型,它允许一个Java应用程序通过网络调用另一个远程计算机上的对象的方法。RMI是Java开发分布式应用的重要工具,使得开发者可以像调用...
### Java+JDK6 学习笔记精要 #### 一、Java概览与起源 Java,由Sun Microsystems公司的James Gosling在Green Project项目中创建,最初命名来源于他窗户外的一棵橡树(Oak)。随着全球信息网的兴起,Java Applet成为...
非常详细java RMI接口编程笔记,实例 且带有详细的说明。
### Java+JDK6学习笔记知识点详解 #### 一、Java简介 - **起源与历史:** - 最初由Sun公司的Green Project发起,旨在创建一个名为Star7的应用程序编程语言。 - 名称来源于创始人James Gosling窗外的一棵橡树...
### JAVA学习笔记1:深入解析J2EE框架与关键技术 #### J2EE模式与Value Object概念 在JAVA学习之旅中,深入理解J2EE(Java 2 Platform, Enterprise Edition)框架是至关重要的一步。J2EE是专为开发企业级应用而...
Java分布式应用学习笔记 在Java世界中,分布式应用是指由多个独立组件通过网络通信协同工作的系统。这种架构模式常用于构建大规模、高可用性、可扩展的系统。本笔记将深入探讨Java分布式应用的核心概念、技术和实践...
从给定的文件信息来看,标题和描述都指向了“Java分布式学习笔记01分布式Java应用”,这显然是关于Java在分布式环境下的应用和技术的学习资料。虽然提供的部分内容由于格式问题难以直接解析,但我们可以根据标题、...
Java学习漏洞Java漏洞学习代码及笔记项目TODO剩余代码完善漏洞使用和分析笔记准备中目前文章分析地址在每个包下package-info.javaJava反序列化Java 应用程序Java类加载shiro资本分析weblogic缓存分析快三平台jackson...
### 匡彬JAVA学习笔记知识点总结 #### 一、Java虚拟机(JVM) - **概念**: Java虚拟机(JVM)是一种能够执行Java字节码的虚拟机,它为Java程序提供了一个运行时环境。JVM的主要功能包括内存管理、垃圾回收、安全性和...
### JAVA学习笔记(林信良 编著 教程) #### 重要知识点解析 **一、Java概述** 1. **起源与发展:** - Java 最初由 Sun Microsystems 的 James Gosling 在 Green Project 中开发,其最初的命名灵感来源于 ...
### JAVA学习笔记(全面) #### 一、Java技术基础 ##### 1.1 编程语言 编程语言是计算机能够理解和执行的一种指令集。根据不同的编程思维和应用场景,编程语言可以分为以下几类: - **机器语言**:由二进制代码...
Java EE是针对企业级应用开发的平台,扩展了Java SE的功能,提供了如JavaServer Pages (JSP)、Servlet、Enterprise JavaBeans (EJB)、Java Remote Method Invocation (RMI)等服务和API,支持分布式、多层结构的Web...
这份"Java demo 算法笔记"集合了Java开发中的多种关键知识点,包括但不限于基础语法、框架源码解析、算法实现以及并发处理等内容,对于学习和提升Java编程技能具有极大的帮助。 首先,我们来探讨Java的基础部分。...
RMI是Enterprise JavaBeans的支柱,是建立分布式Java应用程序的方便途径。在过去,TCP/IP套接字通讯是远程通讯的主要手段,但此开发方式没有使用面向对象的方式实现开发,在开发一个如此的通讯机制时往往令程序员...
Java2编程详解学习笔记主要涵盖了Java语言的基础知识、设计原理以及安装和启动JDK的步骤。下面是对这些知识点的详细阐述: 1. **Java能做什么** - **Applets**:Java小程序,可以在网页中嵌入,提供交互体验。 - ...