/**
*
* @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();
}

}

}

hession RMI 远程调用的更多相关文章

  1. java RMI 远程调用

    1.背景 在学习代理模式的过程中接触到了远程调用,jdk有自己的RMI实现,所以这边自己实现了RMI远程调用,并记录下心得. 感受最深的是RMI和现在的微服务有点相似,都是通过"注册中心&q ...

  2. cas的http配置和rmi远程调用

    1.cas配置http请求(服务端) 1) 解压cas-server-3.4.4-release.zip将modules目录下的cas-server-webapp-3.4.4.war改名称为cas.w ...

  3. WebService与RMI(远程调用方式实现系统间通信)

    前言 本文是<分布式java应用基础与实践>读书笔记:另外参考了此博客,感觉讲的挺好的,尤其是其中如下内容: 另外,消息方式实现系统间通信本文不涉及.RMI则只采用spring RMI框架 ...

  4. Spring的RMI远程调用 - (示例)

    一.定义远程服务器上接口 public interface RMIService { public String getInfo(); } 二.实现远程服务器上接口 public class RMIS ...

  5. Java中RMI远程调用demo

    Java远程方法调用,即Java RMI(Java Remote Method Invocation),一种用于实现远程过程调用的应用程序编程接口.它使客户机上运行的程序可以调用远程服务器上的对象.远 ...

  6. java项目中rmi远程调用实例

    1.创建一个学生实体类Student.java: package com.RMIdemo.entity; @SuppressWarnings("serial") public cl ...

  7. rmi远程调用

    1.在服务器端程序中的spring-servlet.xml中添加 <bean id="userService" class="org.springframework ...

  8. Spring 配置RMI远程调用

    项目中遇到了跨系统调用,当初想的是用webservice或者是hessian.但是这个接口用到的并不多,而且是一个非常简单的方法.所有便想到了RMI.在spring中 实现RMI非常简单. 暴露服务: ...

  9. 廖雪峰Java13网络编程-3其他-2RMI远程调用

    1.RMI远程调用: Remote Method Invocation 目的:把一个接口方法暴露给远程 示例: 定义一个接口Clock,它有一个方法能够获取当前的时间,并编写一个实现类,来实现这个接口 ...

随机推荐

  1. linux 平台安装JDK环境

    1.检查一下系统中的jdk版本 [root@localhost software]# java -version 2.检测jdk安装包 [root@localhost software]# rpm - ...

  2. Python: 比较两个字典是否相等

    有些情况下会遇到比较两个字典是否相等的问题 直观来想,会比较键是否一致,其对应的值是否相等 python中,还有有另外两种方法: 直接使用== a = {'a': 1, 'b': 2} b = {'a ...

  3. sklearn数据集划分

    sklearn数据集划分方法有如下方法: KFold,GroupKFold,StratifiedKFold,LeaveOneGroupOut,LeavePGroupsOut,LeaveOneOut,L ...

  4. iOS进阶四-自动释放池原理

    概述 AutoreleasePool(自动释放池)是OC中的一种内存自动回收机制,它可以延迟加入AutoreleasePool中的变量release的时机.在正常情况下,创建的变量会在超出其作用域的时 ...

  5. JS事件 光标聚焦事件(onfocus)当网页中的对象获得聚点时,执行onfocus调用的程序就会被执行

    光标聚焦事件(onfocus) 当网页中的对象获得聚点时,执行onfocus调用的程序就会被执行. 如下代码, 当将光标移到文本框内时,即焦点在文本框内,触发onfocus 事件,并调用函数messa ...

  6. ASP.NET加断点调试,却跳不进方法的原因。

    1.首先调试后看一下断点是不是空心的,如果是,鼠标放在断点上,按提示操作即可. 提示如图所示:

  7. python的object(转)

    原文章:https://www.cnblogs.com/sesshoumaru/p/6042322.html 1. object类是Python中所有类的基类,如果定义一个类时没有指定继承哪个类,则默 ...

  8. ES5-call,apply,bind的用法

    区别bind()与call()和apply()? 1. Function.prototype.bind(obj) : * 作用: 将函数内的this绑定为obj, 并将函数返回2. 面试题: 区别bi ...

  9. PHP跨服务器提交数据

    关于类似的问题,百度上一搜一大堆,这只是我自己实际用过的两个方法,不多BB直接上代码 1.第一种: 2.第二种 可以随意切换POST和GET提交方式

  10. day10 nfs服务,nginx负载均衡,定时任务

    ==================nginx 负载均衡==================== 实现nginx负载均衡的效果,并运用nfs服务共享目录,使所有nginx服务拥有共同的http目录 n ...