`
ryanflyer
  • 浏览: 102398 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Java RMI简单例子

 
阅读更多

rmi调用一般过程:

接口:

 

package com.zhang.rmi;

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

/**
 * 实现Remote接口,定义的方法都需要抛出RemoteException
 * <p />
 * 
 * @author Administrator
 */
public interface TestRmiInterface extends Remote {

    String concat(String a, String b) throws RemoteException;

}

实现类:

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

/**
 * 继承UnicastRemoteObject类,实现TestRmiInterface接口
 * <p />
 * 
 * @author Administrator
 */
public class TestRmiImpl extends UnicastRemoteObject implements TestRmiInterface {
    
    private static final long serialVersionUID = 7060916499195401961L;

    /**
     * 显式定义构造方法,需要抛出RemoteExcepiton
     * 
     * @throws RemoteException
     */
    protected TestRmiImpl() throws RemoteException {
        super();
    }

   

    /**
     * {@inheritDoc}
     */
    @Override
    public String concat(String a, String b) {
        //System.out.println(a+b);
        return a + b;
    }

}

服务器端:

 

package com.zhang.rmi;

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


public class Server {
    
    public Server(){
        TestRmiInterface testRmi = null;
        Registry registry = null;
        try {
            registry = LocateRegistry.createRegistry(1099);
            
        } catch (RemoteException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            testRmi = new TestRmiImpl();
            registry.rebind("rmi://localhost:1099/testServer", testRmi);
        } catch (RemoteException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } 
    }
    
    public static void main(String[] args) {
//        if(System.getSecurityManager() == null){
//            System.out.println("SecurityManager is null");
//            System.setSecurityManager(new RMISecurityManager());
//        }
        
        new Server();
        System.out.println("server ready");
    }

}

 客户端:

 

package com.zhang.rmi;

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;


public class Client {
    
    public static void main(String[] args) {
        try {
            Registry registry = LocateRegistry.getRegistry(1099);
            TestRmiInterface testRmi = (TestRmiInterface) registry.lookup("rmi://localhost:1099/testServer");
            String test = testRmi.concat("hello", "rmi");
            System.out.println(test);
        }  catch (RemoteException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (NotBoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

 

 

分享到:
评论

相关推荐

    JAVA RMI简单例子

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

    java RMI简单例子

    以下是对"java RMI简单例子"的详细解释: 1. **RMI的基本概念**: - **远程对象**:在RMI中,一个对象如果可以在不同的JVM上执行其方法,那么就被称为远程对象。 - **远程接口**:定义远程对象需要实现的接口,...

    java rmi 简单实例

    远程服务的接口定义  远程服务接口的具体实现  桩(Stub)和框架... 一个RMI命名服务,它允许客户端去发现这个远程服务  类文件的提供者(一个HTTP或者FTP服务器)  一个需要这个远程服务的客户端程序

    Java RMI 简单示例

    这个简单的示例展示了如何创建一个基本的Java RMI应用程序,包括远程接口、服务器端和客户端。 首先,我们来看远程接口。在这个例子中,`HelloIn`接口定义了一个方法`sayHello()`,该方法抛出`RemoteException`。这...

    java RMI简单Demo

    Java RMI(Remote Method Invocation,远程方法调用)是Java平台提供的一种分布式计算技术,它允许在不同网络节点上的Java对象之间进行透明的交互。在Java RMI中,一个对象可以调用另一个位于不同JVM(Java虚拟机)...

    java rmi 简单易懂的实例

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

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

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

    Java RMI实例

    Java RMI实例

    Java RMI的简单例子

    ### Java RMI基础知识与示例解析 ...通过以上详细分析,我们可以清楚地了解到如何使用Java RMI来实现简单的分布式应用。尽管RMI在现代Java开发中的使用频率不高,但了解其基本原理和技术细节仍然具有一定的价值。

    基于JAVA RMI的聊天室

    在这个“基于JAVA RMI的聊天室”项目中,开发者利用RMI技术构建了一个简单的多用户交互系统,让用户可以在不同的计算机上进行实时聊天。 ### 1. JAVA RMI原理 RMI允许Java对象在不同的Java虚拟机之间进行方法调用...

    通过Java RMI实现远程调用的一个简单例子

    这个简单的例子将引导我们了解如何利用Java RMI实现远程调用。 首先,我们要创建远程接口。在Java RMI中,远程接口是一个实现了`java.rmi.Remote`接口的Java接口。接口中声明的方法将在客户端调用,实际上会在...

    java rmi java rmi

    根据提供的文件信息,我们可以深入探讨Java RMI(Java Remote Method Invocation)的相关知识点,包括其概念、原理、体系结构以及一个具体的示例。...这个例子展示了如何利用RMI技术来构建分布式应用程序。

    Java RMI 可运行实例

    这个可运行实例是一个实际应用RMI概念的示例,它展示了如何构建和运行一个简单的分布式系统。在本文中,我们将深入探讨Java RMI的工作原理、关键组件以及如何创建和运行一个RMI应用程序。 首先,理解Java RMI的基本...

    java_rmi.rar_RMI java_java.rmi

    这个"java_rmi.rar"压缩包包含的资源可能是一个Java RMI的实例教程或者代码示例。"www.pudn.com.txt"可能是一个包含相关说明或者下载链接的文本文件,而"rmi"可能是包含具体RMI示例代码的文件夹。 在RMI的基本流程...

    JAVA RMI实现程序实例

    在这个"JAVA RMI实现程序实例"中,我们将会探讨如何使用RMI实现一个简单的“Hello, World”示例,并已经在两台机器上进行了成功的测试。 首先,我们需要了解RMI的基本概念。RMI的核心思想是将对象的方法调用转化为...

    JAVARMI实例[文].pdf

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

    JavaRMI快速入门

    Java Remote Method Invocation(Java RMI)是Java编程语言中用于在网络间进行远程对象调用的技术。它是Java平台的标准部分,允许程序员在分布式环境中调用对象的方法,就像它们在同一台计算机上一样。Java RMI对于...

    java rmi spring 使用实例

    java rmi spring 使用实例,内涵服务端和客户端的源代码,测试可用。

    一个完整的Java RMI通讯的例子

    - RMI默认使用简单认证,可以通过设置Java安全策略加强安全性。 - 为RMI连接启用SSL可以提供加密通信,防止中间人攻击。 7. **性能优化**: - 使用Stub和Skeleton机制可以减少网络传输的数据量。 - 考虑使用RMI...

Global site tag (gtag.js) - Google Analytics