不考虑使用RMI plugin for eclipse插件。
1. 环境:
eclipse 3.6.2
jdk 1.6.0.24
2.一个简单的demo设计:
2.1
2.2
2.2.1 IHello.java
注意:接口 extends Remote;方法throws RemoteException
/**
* Copyright(c) 2010-2011 Yan.Dev. All Rights Reserved.
*/
package com.yan.dev.rmi.server.service;
import java.rmi.Remote;
import java.rmi.RemoteException;
/**
* Comment for IHello.java
*
* @author <a href="mailto:yan.dev@hotmail.com">yan.dev</a>
*
* @blog:<a href="http://yan-dev.iteye.com"><b>yan.dev's Blog</b></a>
* @version 1.0
* @time 2011-3-21 下午04:10:44
*/
public interface IHello extends Remote {
public void sayHello()throws RemoteException;
}
2.2.2 HelloImpl.java
注意:extends UnicastRemoteObject;无参构造函数
/**
* Copyright(c) 2010-2011 Yan.Dev. All Rights Reserved.
*/
package com.yan.dev.rmi.server.service.impl;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import com.yan.dev.rmi.server.service.IHello;
/**
* Comment for HelloImpl.java
*
* @author <a href="mailto:yan.dev@hotmail.com">yan.dev</a>
*
* @blog:<a href="http://yan-dev.iteye.com"><b>yan.dev's Blog</b></a>
* @version 1.0
* @time 2011-3-21 下午04:13:28
*/
public class HelloImpl extends UnicastRemoteObject implements IHello {
/**
* @throws RemoteException
*/
public HelloImpl() throws RemoteException {
super();
}
@Override
public void sayHello() {
System.out.println("ok");
}
}
2.2.3 Server.java
注意:localhost可以替换为server的ip地址
/**
* Copyright(c) 2010-2011 Yan.Dev. All Rights Reserved.
*/
package com.yan.dev.rmi.server;
import java.net.MalformedURLException;
import java.rmi.AlreadyBoundException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import com.yan.dev.rmi.server.service.IHello;
import com.yan.dev.rmi.server.service.impl.HelloImpl;
/**
* Comment for Server.java
*
* @author <a href="mailto:yan.dev@hotmail.com">yan.dev</a>
*
* @blog:<a href="http://yan-dev.iteye.com"><b>yan.dev's Blog</b></a>
* @version 1.0
* @time 2011-3-21 下午04:11:34
*/
public class Server {
public static void main(String[] args) {
int port =1234;
try {
LocateRegistry.createRegistry(port);
// 创建一个远程对象
IHello hello = new HelloImpl();
Naming.bind("//localhost:"+port+"/hello", hello);
System.out.println("Server start succeed, listening...");
} catch (RemoteException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (AlreadyBoundException e) {
e.printStackTrace();
}
}
}
2.2.4 Client.java
注意:loalhost与server的ip地址一致
/**
* Copyright(c) 2010-2011 Yan.Dev. All Rights Reserved.
*/
package com.yan.dev.rmi.client;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import com.yan.dev.rmi.server.service.IHello;
/**
* Comment for Client.java
*
* @author <a href="mailto:yan.dev@hotmail.com">yan.dev</a>
*
* @blog:<a href="http://yan-dev.iteye.com"><b>yan.dev's Blog</b></a>
* @version 1.0
* @time 2011-3-21 下午04:17:12
*/
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
try {
IHello hello = (IHello) Naming.lookup("rmi://localhost:1234/hello");
hello.sayHello();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (NotBoundException e) {
e.printStackTrace();
}
}
}
3运行
运行Server,
运行Client
3.1本机
3.2远程
注意:修改ip地址
eclipse中export server.jar,启动main类选择Server
命令行中运行java -jar server.jar。
运行client连接server。
- 大小: 26.7 KB
- 大小: 3.8 KB
- 大小: 3.9 KB
分享到:
相关推荐
这个“RMI入门好例子”旨在帮助初学者理解并实践RMI的基本原理和操作流程。 首先,RMI的核心思想是通过接口实现远程对象的透明调用。在示例中,`rmidemo`可能包含了服务器端的代码,它会定义一个接口,例如`...
【JAVA RMI入门教程】 Java Remote Method Invocation (RMI) 是Java平台中用于构建分布式应用程序的一个关键技术。RMI使得不同Java虚拟机(JVM)之间的对象可以相互通信,从而共享资源和处理能力,实现分布式计算。其...
本项目提供了一个入门级的源代码示例,帮助开发者理解如何在 Spring 环境下集成 RMI 技术。以下是关于这两个技术及其整合的详细知识点: **Spring 框架** 1. **Spring 概述**:Spring 是一个开源的 Java 应用开发...
这篇博客“RMI入门小结”主要探讨了RMI的基础概念、实现步骤以及常见问题。 1. RMI的基本原理: RMI的核心是通过接口定义服务,服务端实现接口,并将实现类注册到RMI注册表中。客户端通过引用远程接口,即可调用...
自己收集了一些跑得通的教程,并自己整理给出了,入门例子。包括:最原生的使用javac和rmic的例子;还有进一步的,使用IDM,用代码代理原生rmic编译的例子;还有RMI和Spring整合的例子。 另外附有:例子说明 和 一些...
这个"java RMI入门例子"将带你深入理解RMI的工作原理和主要组件。 RMI的核心概念包括: 1. **远程接口**:这是定义远程方法的接口,通常继承自java.rmi.Remote。这些方法声明抛出java.rmi.RemoteException,表示...
【标题】:“RMI入门” 远程方法调用(Remote Method Invocation,简称RMI)是Java平台提供的一种用于在分布式环境中实现对象间通信的技术。RMI允许一个Java对象调用网络另一端的Java对象的方法,就像调用本地对象...
这个“rmi入门(带源码)”的资源可能是一个教学资料或实践项目,帮助初学者理解和应用RMI技术。 首先,我们来详细了解一下RMI的基本概念: 1. **远程接口(Remote Interface)**:这是定义远程方法的接口。它继承了...
《EJB-RMI入门》是一本专注于讲解Java企业级应用开发技术的书籍,特别是针对RMI(Remote Method Invocation,远程方法调用)的使用。RMI是Java平台中用于构建分布式应用程序的关键技术,它允许Java对象在不同的Java...
### RMI基础知识与实践 #### 一、Java RMI简介 Java Remote Method Invocation (RMI) 是Java平台提供的一种分布式计算技术,允许开发者在不同Java虚拟机(JVM)之间调用远程对象的方法,从而实现分布式应用程序的...
简约而不简单的描述了RMI技术,希望对大家有所帮助。
RMI(Remote Method Invocation)是Java提供的一种用于构建分布式应用程序的机制,它允许Java对象在不同的网络环境中相互调用方法,实现了远程对象间的无缝通信。RMI是在JDK1.1版本中引入的,它是纯Java实现的,遵循...
在本文中,我们将深入探讨Java Remote Method Invocation (RMI)技术,通过一个具体的实例来学习如何设置、构建和调试RMI应用。RMI是Java提供的一种远程对象调用机制,它允许Java对象在不同的JVM之间进行通信。在这个...
本文档是关于Java远程方法调用(Java RMI)的入门教程,适用于JDK 1.1版本。文档首次发布于1997年2月10日,由Sun Microsystems公司版权所有。Sun Microsystems公司授予用户一个全球性的、非独家的、不可转让的、无...
RMI,远程方法调用(Remote Method Invocation)是Enterprise JavaBeans的支柱,是建立分布式Java应用程序的方便途径。RMI是非常容易使用的,但是它非常的强大。
"RMI基础教程 - 深海有约 - BlogJava.files"和"rmi入门教程,简单明了(转).files"可能包含了相关的源代码或者图片资源,帮助读者更好地理解和实践RMI编程。 通过深入阅读这些资料,你可以了解如何设置RMI环境,...
Java Remote Method Invocation(Java RMI)是Java编程语言中用于在网络间进行远程对象调用的技术。它是Java平台的标准部分,允许程序员在分布式环境中调用对象的方法,就像它们在同一台计算机上一样。Java RMI对于...