`
IThead
  • 浏览: 419792 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring rmi配置

阅读更多
Spring Rmi配置
1、服务器端
新建一个Dynamic 、Web Project,导入支持Spring jar包。在WEB-INF下新建applicationContent.xml(必须加上<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">,否则会报错),代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    
    <bean id="baseRmiService" class="com.wym.service.impl.BaseServiceImpl">
    </bean>
    <bean id="baseServiceExporter" class="org.springframework.remoting.rmi.RmiServiceExporter">
    	<!-- 调用Service -->
    	<property name="service" ref="baseRmiService"></property>
    	<!-- value值是给用户调用 -->
    	<property name="serviceName" value="baseService"></property>
    	<!-- service 接口 -->
    	<property name="serviceInterface" value="com.wym.service.BaseService"></property>
    	<!-- 注册端口号 -->
    	<property name="registryPort" value="1200"></property>
    </bean>
</beans>


BaseService.java
package com.wym.service;

import com.wym.bi.User;

public interface BaseService {
	
	public String getHelloword(String name);
	
	public String getUser(User user);
}


BaseServiceImpl.java
package com.wym.service.impl;

import com.wym.bi.User;
import com.wym.service.BaseService;

public class BaseServiceImpl implements BaseService {
	
	public String getHelloword(String name){
		return "Welcome to Shanghai," + name + "!";
	}

	public String getUser(User user){
		return "name: " + user.getName() + "------>" + "age: " + user.getAge();
	}
}


User:必须实现Serializable接口
package com.wym.bi;

import java.io.Serializable;

public class User implements Serializable {  
	
    private static final long serialVersionUID = 1L;  
  
    private String name;  
    private int age;  
  
    public User(){}  
      
    public User(String name, int age){  
        this.name = name;  
        this.age = age;  
    }  
      
    public String getName() {  
        return name;  
    }  
  
    public void setName(String name) {  
        this.name = name;  
    }  
  
    public int getAge() {  
        return age;  
    }  
  
    public void setAge(int age) {  
        this.age = age;  
    }  

}


main方法:
package com.wym.service;

import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.wym.service.BaseService;

public class BaseServiceTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
		BaseService baseService = (BaseService) context.getBean("baseRmiService");
		System.out.println("baseRmiService start...");
	}

}

把service借口和java bean打成jar包放到客户端的里面。
启动main方法,或者将service发布到服务器。


2、客户端
新建一个java项目或者web项目,导入Spring jar包。新建applicationContext.xml,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>

	<bean id="baseService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
		<!-- baseService是调用服务端serviceName的value -->
		<property name="serviceUrl" value="rmi://192.168.0.37:1200/baseService"></property>
		<!-- service接口 -->
		<property name="serviceInterface" value="com.wym.service.BaseService"></property>
	</bean>
</beans>

192.168.0.37是服务器的IP地址。

main方法
package wym.client;

import com.wym.bi.User;
import com.wym.service.BaseService;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class ClientTest {

    public static void main(String[] args) {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("file:d:/tnt_project/TEST/conf/applicationContext.xml");
        BaseService baseService = (BaseService) context.getBean("baseService");
        System.out.println(baseService.getHelloword("Yunmin Wu"));
        User user = new User();
        user.setName("Dan Qiao");
        user.setAge(48);
        System.out.println(baseService.getUser(user));
    }
}


关于Spring的applicationContent.xml文件的详解,请点此链接:http://ithead.iteye.com/admin/blogs/1461565
运行main方法,在控制台就能看见结果了。







1
0
分享到:
评论
4 楼 busiying119 2016-09-07  
limin914245697 写道
课后没答案 写道
非常感谢楼主,在网上找了好几个Spring、RMI的代码例子,都不能直接运行成功,只有你的代码直接可以运行OK,太感谢了!我还专门把自己的iteye的密码找回来来给你评论的,再次表示感谢!

叼还是你叼

现在都用webservice了,rmi本身极其不方便,多少年前会用ejb,rmi,现在webservice多好用跨平台等等。
3 楼 limin914245697 2016-08-15  
课后没答案 写道
非常感谢楼主,在网上找了好几个Spring、RMI的代码例子,都不能直接运行成功,只有你的代码直接可以运行OK,太感谢了!我还专门把自己的iteye的密码找回来来给你评论的,再次表示感谢!

叼还是你叼
2 楼 u010311110 2016-03-07  
把service借口和java bean打成jar包放到客户端的里面。

这个步骤岂不是很麻烦?还要给别人jar包用。。。
1 楼 课后没答案 2015-02-01  
非常感谢楼主,在网上找了好几个Spring、RMI的代码例子,都不能直接运行成功,只有你的代码直接可以运行OK,太感谢了!我还专门把自己的iteye的密码找回来来给你评论的,再次表示感谢!

相关推荐

    spring rmi 多接口配置 调用

    spring rmi 多接口服务端配置 调用多接口客户端配置

    spring与rmi 整合实例 源码详解

    spring 与rmi 的整合 1.首先编写接口 interface : 这里的接口要继承Remote, 它是一个标识接口 2.编写实现类 3.编写main方法用于启动 service 4 配置spring文件 编写客户端测试类

    spring-rmi-example:Spring rmi 示例,取自 code.google.com,因为 code.google.com 将停止使用

    spring-rmi-示例 ...这个项目是如何在 Spring 的帮助下设置 RMI 服务器和客户端的示例。 该项目包含2个子项目: Spring RMI 示例服务器,即 Web 应用程序 ...服务器 Spring 配置如下: &lt; / bean &gt; &lt; pr

    Spring 实现远程访问详解——httpinvoker

    上文我们利用Spring rmi实现了Spring的远程访问(Spring 实现远程访问详解——rmi),本文主要讲解利用HttpInvoke实现远程访问。 Spring httpInvoker使用标准java序列化机制,通过Http暴露业务服务。如果你的参数和...

    实现JMX的spring支持,拓展了RMI远程接口。

    JMX集成到spring中,并提供了一个rmi远程连接的配置文件

    Spring 实现远程访问详解——jms和activemq

    前几章我们分别利用spring rmi、httpinvoker、httpclient、webservice技术实现不同服务器间的远程访问。本章我将通过spring jms和activemq实现单Web项目服务器间异步访问和多Web项目服务器间异步访问。 一. 简介 1. ...

    spring jar 包详解

    (2) spring-beans.jar 这个jar文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类。如果应用只需基本的IoC/DI支持,...

    Hessian RPC-RMI技术 整合Structs Spring Hibernate Ibatis

    Hessian RPC-RMI技术 整合Structs Spring Hibernate Ibatis 包含Hessian配置说明、服务器Server Demo、客户端Client Demo.

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点实施 ...

    Spring 2.5 jar 所有开发包及完整文档及项目开发实例

    这个jar文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类。如果应用只需基本的IoC/DI支持,引入spring-core.jar及...

    最新最全的spring开发包

    这个jar文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类。如果应用只需基本的IoC/DI支持,引入spring-core.jar及...

    Spring 2.0 开发参考手册

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    12.6.16 编写Spring和Hibernate的配置文件spring-config.xml 12.6.17 编写web.xml 12.6.18 验证示例 12.7 小结 第四篇 J2EE项目案例精选 第十三章 网上调查系统 13.1 系统概述 13.2 需求分析 13.2.1 系统用例图 ...

    Spring中文帮助文档

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 ...

    spring chm文档

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点...

    Spring API

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 ...

    Spring攻略(第二版 中文高清版).part1

    1.2 配置Spring IoC容器中的Bean 4 1.2.1 问题 4 1.2.2 解决方案 4 1.2.3 工作原理 4 1.3 调用构造程序创建Bean 14 1.3.1 问题 14 1.3.2 解决方案 14 1.3.3 工作原理 14 1.4 解决构造程序歧义 17 ...

    spring in action英文版

    第一部分 Spring基础  第1章 开始Spring之旅  1.1 为什么使用Spring  1.1.1 J2EE开发者的一天  1.1.2 Spring的承诺  1.2 Spring是什么  1.3 开始Spring之旅  1.4 理解反向控制  1.4.1 依赖...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    12.6.16 编写Spring和Hibernate的配置文件spring-config.xml 12.6.17 编写web.xml 12.6.18 验证示例 12.7 小结 第四篇 J2EE项目案例精选 第十三章 网上调查系统 13.1 系统概述 13.2 需求分析 13.2.1 系统用例图 ...

    Spring攻略(第二版 中文高清版).part2

    1.2 配置Spring IoC容器中的Bean 4 1.2.1 问题 4 1.2.2 解决方案 4 1.2.3 工作原理 4 1.3 调用构造程序创建Bean 14 1.3.1 问题 14 1.3.2 解决方案 14 1.3.3 工作原理 14 1.4 解决构造程序歧义 17 ...

Global site tag (gtag.js) - Google Analytics