Spring的RMI远程调用 - (示例)
一、定义远程服务器上接口
public interface RMIService {
public String getInfo(); }
二、实现远程服务器上接口
public class RMIServiceImpl implements RMIService{
public String getInfo() { String msg = "RMI 服务!"; return msg; }
}
三、配置服务器文件 applicationContext_service.xml
<?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd" default- default-lazy-init="false"> <!-- 用户RMI接口实现类 --> <bean name="RMIServer" class="com.rim.test.RMIServiceImpl"/> <!-- 暴露RMI服务配置 --> <bean name="rimServiceExporter" class="org.springframework.remoting.rmi.RmiServiceExporter"> <property name="service" ref="RMIServer"/> <!-- 暴露给客户调用服务 --> <property name="serviceName" value="TestService"/> <!-- 调用接口 --> <property name="serviceInterface" value="com.rim.test.RMIService"/> <property name="registryPort" value="1099"/> </bean> </beans> 四、启动服务器
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;
public class ServiceMainTest {
public static void main(String[] args) { ApplicationContext appContext=new ClassPathXmlApplicationContext("applicationContext_service.xml"); appContext.getBean("rimServiceExporter");
} }
五、配置客户端文件 applicationContext_client.xml
<?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd" default- default-lazy-init="true"> <!-- 客户端调用RMI服务配置 --> <bean name="RMIServiceImpl" class="org.springframework.remoting.rmi.RmiProxyFactoryBean"> <property name="serviceUrl" value="rmi://192.168.1.179:1099/TestService"/> <property name="serviceInterface" value="com.rim.test.RMIService"/> </bean> </beans>
六、客户端获取远程接口上的数据
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;
public class ClientMainTest {
public static void main(String[] args) { ApplicationContext appContext1=new ClassPathXmlApplicationContext("applicationContext_client.xml"); RMIService rmi = (RMIService)appContext1.getBean("RMIServiceImpl"); System.out.println(rmi.getInfo()); }
}
Spring的RMI远程调用 - (示例)的更多相关文章
- Spring 配置RMI远程调用
		
项目中遇到了跨系统调用,当初想的是用webservice或者是hessian.但是这个接口用到的并不多,而且是一个非常简单的方法.所有便想到了RMI.在spring中 实现RMI非常简单. 暴露服务: ...
 - java RMI 远程调用
		
1.背景 在学习代理模式的过程中接触到了远程调用,jdk有自己的RMI实现,所以这边自己实现了RMI远程调用,并记录下心得. 感受最深的是RMI和现在的微服务有点相似,都是通过"注册中心&q ...
 - WebService与RMI(远程调用方式实现系统间通信)
		
前言 本文是<分布式java应用基础与实践>读书笔记:另外参考了此博客,感觉讲的挺好的,尤其是其中如下内容: 另外,消息方式实现系统间通信本文不涉及.RMI则只采用spring RMI框架 ...
 - (转载)spring 之间的远程调用-Spring Http调用的实现
		
原文:https://www.cnblogs.com/lewisat/p/6132082.html 1:Spring Http设计思想 最近在研究公司自己的一套rpc远程调用框架,看到其内部实现的设计 ...
 - cas的http配置和rmi远程调用
		
1.cas配置http请求(服务端) 1) 解压cas-server-3.4.4-release.zip将modules目录下的cas-server-webapp-3.4.4.war改名称为cas.w ...
 - hession RMI 远程调用
		
/** * * @author administror * 在java中,需要去extends 继承java.rmi.Remote 接口,才能称为在于服务器流的远程对象. * 各客服端调用 * */p ...
 - java项目中rmi远程调用实例
		
1.创建一个学生实体类Student.java: package com.RMIdemo.entity; @SuppressWarnings("serial") public cl ...
 - Spring @Async实现异步调用示例
		
什么是“异步调用”? “异步调用”对应的是“同步调用”,同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行:异步调用指程序在顺序执行时,不等待异步调用的语句返回结果 ...
 - Java中RMI远程调用demo
		
Java远程方法调用,即Java RMI(Java Remote Method Invocation),一种用于实现远程过程调用的应用程序编程接口.它使客户机上运行的程序可以调用远程服务器上的对象.远 ...
 
随机推荐
- aspx与ashx
			
ashx在VS的中文版是新建“一般处理程序”,其实是一个实现类System.Web.IHttpHandler接口的类.而任何一个实现了IHttpHandler接口的类都能作为一个外部请求的目标程序.H ...
 - apr 内存管理
			
//============================================================================ // Name : mytest.cpp ...
 - 163源报错Hash Sum mismatch 解决方法
			
Ubuntu server 用的163的源,报错: W: Failed to fetch http://mirrors.163.com/ubuntu/dists/precise-updates/mai ...
 - Js apply 方法 详解
			
Js apply方法详解 我在一开始看到JavaScript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这 ...
 - BZOJ 2427 & 分块裸题
			
题意: 求区间内的众数,强制在线. SOL: 推荐一个大神犇的blog,讲的还是很好的(主要我喜欢他的代码风格(逃:http://www.cnblogs.com/JoeFan/p/4248767.ht ...
 - 51Nod 1021 石子合并 Label:Water DP
			
N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价.计算将N堆石子合并成一堆的最小代价. 例如: 1 2 3 4,有 ...
 - 【HDU】1517 A Multiplication Game
			
http://acm.hdu.edu.cn/showproblem.php?pid=1517 题意:每次乘上2~9..p>=n时赢.. #include <cstdio> #incl ...
 - spring源码学习之路---深入AOP(终)
			
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 上一章和各位一起看了一下sp ...
 - windows2008 IIS下配置FTP服务
			
一.服务器管理器 1.2008的系统使用服务器管理器,选择角色,因为我之前已经开启了IIS服务器角色,所以我现在只要添加角色服务即可,如果你没有开启过的话,直接添加角色即可. 2.选择WEB服务器,打 ...
 - javascrit2.0完全参考手册(第二版)  第2章第1节 基本定义
			
在这里,我们介绍一些将要使用的编程语言术语.表2-1提供了精确定义的概念. Table 2-1: 编程语言的基本术语 名字 定义 例子 Token令牌 最小的不可分割的词汇的语言单位.一个连续的字符序 ...