`
IThead
  • 浏览: 427911 次
  • 性别: 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服务通常涉及以下步骤: - **创建远程接口**:定义一个继承自`java.rmi.Remote`的接口,声明远程方法。 - **实现远程接口**:提供接口的实现,这些方法将在服务器端执行。 - *...

    spring RMI 实用分享

    二、Spring RMI配置步骤 1. 创建远程接口:首先定义一个Java接口,声明要远程调用的方法。例如: ```java public interface HelloService { String sayHello(String name); } ``` 2. 实现远程接口:创建接口的实现...

    Spring RMI小例子

    - **`&lt;bean&gt;`标签中的`rmi:`命名空间**:Spring配置文件中可以使用`&lt;rmi:registry&gt;`来定义RMI注册表,`&lt;rmi:export&gt;`用于导出远程服务。 - **`RmiServiceExporter`**:Spring提供的bean,负责将Spring Bean暴露为...

    SpringRMI小例子

    在这个"SpringRMI小例子"中,我们将深入探讨如何利用Spring框架来增强RMI的功能,使其更加灵活和易于管理。 首先,我们需要理解Spring框架在RMI中的角色。Spring提供了对RMI的高级抽象,通过其`org.springframework...

    spring rmi 改造

    通过Spring的RMI支持,我们可以方便地定义服务接口和服务实现,然后通过配置文件或注解将它们暴露为RMI服务。这样做不仅提高了代码的可测试性,也使得服务的部署和管理变得更加灵活。 在原生的Spring RMI实现中,...

    spring rmi应用

    3. **配置Spring容器**:在Spring的XML配置文件中,你需要声明一个`&lt;bean&gt;`来表示远程服务,使用`&lt;rmi:export&gt;`或`&lt;bean class="org.springframework.remoting.rmi.RmiServiceExporter"&gt;`标签将服务导出为RMI。...

    spring rmi 小例子

    6. **源码分析**:在提供的压缩包文件`SpringRMI`中,可能包含了上述所有步骤的代码示例。通过阅读这些源码,你可以深入理解Spring RMI的工作原理,包括服务暴露、注册、代理创建等。 7. **工具使用**:在开发过程...

    spring RMI简单例子

    3. **Spring配置(Spring Configuration)**:在Spring配置文件中,我们需要声明远程服务bean,并配置RMI服务器和客户端的设置。例如: ```xml &lt;bean id="rmiRegistry" class="org.springframework.remoting.rmi....

    spring RMI 服务(自动把service发布为RMI服务)

    下面将详细阐述Spring RMI服务的实现原理、配置过程以及如何自动化发布服务。 首先,了解RMI的基本概念是必要的。RMI是Java提供的一种标准接口,它允许一个Java对象调用远程主机上的另一个Java对象的方法,就像调用...

    Spring Rmi使用文档

    而 Spring RMI 大大简化了这些步骤,使得开发者可以通过简单的配置来创建 RMI 服务端和客户端。 #### 二、Spring RMI 的安装和使用 Spring 自 1.x 版本起就直接支持 RMI 功能,因此只需要包含 Spring 的 JAR 包...

    spring rmi 多接口配置 调用

    3. **配置RMI服务器**:在Spring的XML配置文件(如`applicationContext.xml`)中,我们需要配置一个RmiRegistryBean来启动RMI注册表,并声明一个RmiServiceExporter来暴露我们的RMI服务: ```xml ...

    spring rmi 源码

    Spring RMI(Remote Method Invocation)是Spring框架对Java RMI技术的一种封装,使得在Spring环境中使用RMI变得更加简便。RMI是一种Java平台上的远程对象调用机制,它允许一个Java对象在不同的Java虚拟机之间调用另...

    spring rmi 集成

    5. **Spring配置**:在Spring的配置文件中,可以使用`&lt;bean&gt;`标签定义RMI服务,并使用`&lt;lookup-method&gt;`标签来查找并注入远程对象。 ```xml &lt;bean id="myServiceExporter" class="org.springframework.remoting...

    spring-rmi

    虽然提供的压缩包子文件名列表`jn`没有提供具体的信息,但可以假设其中可能包含了Spring RMI配置的示例代码、测试用例或其他辅助资源,帮助开发者理解和实践Spring RMI的使用。 总结来说,Spring RMI是Spring框架...

    Spring-RMI.rar_spring rmi

    2.4 启动RMI服务器:运行包含上述配置的Spring上下文,服务将自动发布到RMI注册表。 三、创建Spring RMIClient 3.1 引入远程服务:在客户端项目中,同样需要定义远程接口,并确保客户端可以访问服务器端的接口。 ...

    spring和RMI分布式整合源码

    具体到这个压缩包“springRMI”,我们可以推测它可能包含了以下几个部分: 1. **配置文件**:如`applicationContext.xml`,其中定义了Spring容器中的Bean,可能包括RMI服务的接口和实现。 2. **远程接口**:`.java`...

    java项目使用spring rmi所涉及到的包

    配置Spring RMI的基本步骤如下: 1. 定义服务接口和服务实现。 2. 在服务器端,创建一个`RmiServiceExporter`实例,将服务接口和服务实现注入,并配置RMI注册名和端口号。 3. 在服务器端的应用上下文配置文件中,...

    spring rmi 简单应用

    Spring RMI在此基础上增加了配置简化、依赖注入等特性,使得远程服务的创建和调用更加便捷。 首先,我们来理解一下Spring RMI的核心概念: 1. **远程接口(Remote Interface)**:这是定义远程方法的接口,通常...

    springRMI接口实现

    这个技术基于Java的RMI系统,但通过Spring的抽象层,简化了配置和使用过程,提高了可维护性和可测试性。 在Spring RMI中,主要涉及以下几个关键概念和知识点: 1. **接口定义**:首先,你需要定义一个远程服务接口...

Global site tag (gtag.js) - Google Analytics