论坛首页 编程语言技术论坛

Spring RMI 远程服务

浏览 5269 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2017-05-09   最后修改:2017-05-09

Spring RMI 远程服务

 

      在Spring中配置RMI服务

 

      在服务端,RmiServiceExporter可以将任意一个Spring管理的Bean发布为RMI服务。

 

      在客户端,Spring的RmiProxyFactoryBean是一个工厂Bean,可以为RMI服务创建代理。RmiProxyFactoryBean生成一个代理对象,负责客户端与远程的RMI服务进行通信。

 

      服务端发布RMI服务

 

package com.x.rmi;

public interface HelloService {
	
	public String sayHello(String name);
	
}

 

package com.x.rmi;

public class HelloServiceImpl implements HelloService {

	public String sayHello(String name) {
		System.out.println("Hello " + name);
		return "Hello " + name;
	}

}

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
	
	<bean class="org.springframework.remoting.rmi.RmiServiceExporter">
		<property name="service"          ref="helloService"></property>
		<property name="serviceName"      value="HelloService"></property>
		<property name="serviceInterface" value="com.x.rmi.HelloService"></property>
	</bean>
	
	<bean id="helloService" class="com.x.rmi.HelloServiceImpl" />
	
</beans>

 

      这里把helloService Bean装配进service属性中来表明RmiServiceExporter要将该Bean发布为一个RMI服务。

      serviceName属性命名了RMI服务。

      serviceInterface属性指定了此服务所实现的接口。

 

package com.x.rmi;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class RmiServer {  
  
    public static void main(String[] args) throws InterruptedException {  
        new ClassPathXmlApplicationContext("com/x/rmi/remote-server.xml");
        
    }  
}

 

      客户端调用RMI服务

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
	
	<bean id="helloService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
		<property name="serviceUrl"       value="rmi://localhost/HelloService"></property>
		<property name="serviceInterface" value="com.x.rmi.HelloService"></property>
	</bean>
	
</beans>

 

package com.x.rmi;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class RmiClient {  
    public static void main(String[] args) {  
        ApplicationContext ctx = new ClassPathXmlApplicationContext("com/x/rmi/remote-client.xml");  
        HelloService helloService = (HelloService) ctx.getBean("helloService");  
        String ret = helloService.sayHello("Rod Johnson");  
        System.out.println(ret);
    }  
  
}

 

 

 

 

   发表时间:2017-05-12  
很好值得一看
0 请登录后投票
   发表时间:2018-01-23  
送,送,送!阿里云服务器优惠卷

阿里云服务器幸运卷最后一波,下单记得选择幸运卷有惊喜服务器有优惠哦!下完单记得抽奖哦,基本100%中,
还有可能抽到iPad!阿里云服务器现在还正在打折哦,最后,别忘记领取幸运卷(优惠券),领取幸运券
https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=5gg22qjx&amp;utm_source=5gg22qjx
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics