zoukankan      html  css  js  c++  java
  • hession RMI 远程调用


    /**
    *
    * @author administror
    * 在java中,需要去extends 继承java.rmi.Remote 接口,才能称为在于服务器流的远程对象。
    * 各客服端调用
    *
    */
    public interface Hello extends Remote {
    //实现了Remote接口,该接口的方法可以被客服端远程调用

    public String helloWord() throws java.rmi.RemoteException;

    public String sayGoodBy() throws java.rmi.RemoteException;

    }


    //远程调用对象必须继承java.rmi.server.UniCaseRemoteObject
    //这样才能保证我们的远程调用对象在被调用时会把自身的对象进行拷贝并且以socket形式传输给客服端
    public class HelloImpl extends UnicastRemoteObject implements Hello {

    /**
    * 序列化ID
    */
    private static final long serialVersionUID = 1L;

    /**
    * 该构造方法必须实现
    * @throws RemoteException
    */
    protected HelloImpl() throws RemoteException {
    super();
    // TODO Auto-generated constructor stub
    }

    public String helloWord() throws RemoteException {
    System.out.println("你好,这里是远程服务中心!");
    return "另一车轨迹";
    }

    public String sayGoodBy() throws RemoteException {
    System.out.println("ByeBye 这里是远程服务中心");
    return "倩宁";
    }

    }


    /**
    * 远程服务
    * @author administror
    *
    */
    public class Server {

    public static void main(String[] args) {

    Hello hello;
    try {
    hello = new HelloImpl(); //生成了stubs skeleton 并且返回了stubs的代理应用
    LocateRegistry.createRegistry(8080);
    //将stub应用绑定到注册的服务地址
    Naming.bind("rmi://127.0.0.1:8080/sunny", hello);
    System.out.println("完成服务注册及绑定");
    } catch (RemoteException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (MalformedURLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (AlreadyBoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }

    }


    public class Client {

    public static void main(String[] args) {

    //远程调用方法与本地方法调用是一样的
    try {
    Hello hello = (Hello)Naming.lookup("rmi://127.0.0.1:8080/sunny");
    hello.helloWord();
    hello.sayGoodBy();
    } catch (MalformedURLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (RemoteException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (NotBoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }

    }

  • 相关阅读:
    asp.net正则匹配嵌套Html标签
    sql语句插入百万测试数据
    js判断网页是真静态还是伪静态的方法
    sql自动创建表并复制数据
    百度地图API-搜索地址、定位、点击获取经纬度并标注
    kindeditor自定义插件插入视频代码
    mongo 取随机100条数据写入Excel
    python实现RSA加密和签名以及分段加解密的方案
    装饰器写法
    大转盘抽奖概率 固定每个区域的中奖几率
  • 原文地址:https://www.cnblogs.com/lovelanglangyou/p/7426919.html
Copyright © 2011-2022 走看看