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

Spring - RMI

阅读更多
如果你的RMI的实现里,需要用到Spring IOC&DI,那么你就需要改改你的Code了。

当然了,这里说的是实现类(Stub)类,接口是没有什么问题的只需要继承自remote就行了,需要注意的就是每个方法都要throws RemoteException;
服务端接口:
public interface IDemoServer extends Remote {
 
    /**
     * 查询客户信息
     * @param user 客户信息
     * @return
     */
    List<User> queryUserInfo(User user)throws RemoteException;

}


服务端实现:(需要注意的是必须显示的书写构造方法,还有就是他不能再继承自UnicastRemoteObject类了,因为它会抛出其它异常。)
@Component
public class DemoRMIServer implements IDemoRMIServer {
    @Autowiredv
    private UserService userService;
    

    public DemoRMIServer() {
        super();
    }
    
    /**
     * 查询客户拥有的安全载体信息
     * @return
     */
    public List<User> queryUserInfo(User user)throws RemoteException {
        return userService.queryUserInfo(user);
    }

}

配置文件(Spring):
<bean id="m3AdminRMI" class="org.springframework.remoting.rmi.RmiServiceExporter">
		<property name="serviceName" value="Demo" />
		<property name="service" ref="demoRMIServer" />
		<property name="serviceInterface" value="com.demo.IDemoRMIServer " />
		<!-- <property name="registryHost" value="localhost"/> -->
		<property name="registryPort" value="10999" />
	</bean>


这样服务端的代码就完成了。由于使用了Spring3.0的MVC模式,所以,这里DemoRMIServer 被加了 annotation @Component,所以他也会被Spring 当做一个Bean来实例化,按照规范他会被命名为你的类名,第一字母小写。

现在是客户端:
首先我们要做的就是配置(Spring):
<bean id="rmiService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
		<property name="serviceUrl" value="rmi://127.0.0.1:10999/Demo"></property>
		<property name="serviceInterface" value="com.demo.IDemoRMIServer"></property>
	</bean>


然后,你随便写一个Java类,rmiServer注入进来就行。
public class RMIClientTest {
    
    @Autowired
    private RmiProxyFactoryBean rmiServer;
    

    public void testRMIClient(){
        User user=new User();
        user.setContactName("Yy");
        user.setIdentifierType("1");
        user.setIdentifierNumber("56");
        try {
            IDemoRMIServer server = (IDemoRMIServer )rmiServer.getObject();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    public static void main(String [] args) {
        FileSystemXmlApplicationContext fsxac = new FileSystemXmlApplicationContext("classpath:applicationContext.xml");
        System.out.println("init ...");
        IDemoRMIServer service = (IDemoRMIServer )fsxac.getBean("rmiService");
        System.out.println("start service ..."); 
        User user=new User();
        user.setContactName("Yy");
        user.setIdentifierType("01");
        user.setIdentifierNumber("056");
        try {
            System.out.println("start query ...");
            List<User> users= service.queryUserInfo(user);
            for (User user: users) {
                System.out.println(user.getContactName() + ">>>" + user.getPhone() + ">>>" );
            }
            System.out.println(" ... <<");
        } catch (RemoteException e1) {
            e1.printStackTrace();
        }
    }
}

Spring - RMI 就是这么简单,上面提供了两种方式,下面那种方试用来测试的(main方法)。
分享到:
评论

相关推荐

    Spring-RMI (RMI调用, HTTP调用)

    Spring通过提供RMI集成,简化了RMI服务的创建和调用。以下是一些关键点: 1. **服务接口定义**:首先,你需要定义一个远程服务接口,这个接口将包含你希望在远程进程中执行的方法。 2. **服务实现**:接着,创建该...

    spring-rmi

    Spring框架提供了对RMI的支持,使得在Spring应用中集成RMI变得更加方便。标题"spring-rmi"暗示我们将探讨Spring框架与RMI的整合。 Spring RMI的核心概念包括服务接口、远程实现和服务注册。首先,我们需要定义一个...

    Spring-RMI.rar_spring rmi

    1.2 Spring的RMI支持:Spring通过`org.springframework.remoting.rmi.RmiServiceExporter`和`RmiProxyFactoryBean`简化了RMI的使用。`RmiServiceExporter`用于发布服务,而`RmiProxyFactoryBean`则用于创建RMI服务的...

    spring-2.5.x-3.0.x-rmi-compatibility

    spring rmi 2.5.x版本与3.0.x版本不兼容解决方案

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

    spring-rmi-示例 项目是从 code.google.com/p/springrmiexample 导出的,我这边稍作修改 这个项目是如何在 Spring 的帮助下设置 RMI 服务器和客户端的示例。 该项目包含2个子项目: Spring RMI 示例服务器,即 Web...

    spring-security3.1.4 完整的jar包

    10. **spring-security-remoting-3.1.4.RELEASE.jar**:处理远程方法调用的安全性,如RMI、Hessian和 Burlap等远程调用协议的安全控制。 这些jar包共同构成了Spring Security 3.1.4的完整框架,为企业级应用提供了...

    java spring+rmi 的远程调用例子

    Java Spring与RMI(Remote Method Invocation)的整合是企业级应用中常见的远程服务交互方式。Spring框架提供了对RMI的支持,使得开发者能够方便地在分布式环境中进行服务的调用。这个压缩包文件“Spring+RMI”很...

    spring-framework-5-0-0-m3-zh_cn

    Spring Framework 是一种轻量级的解决方案,是构建你...明式事务管理,通过RMI或Web服务远程访问你的逻辑,以及用于持久存储数据的各种选项。 它提供了一个全功能的 MVC 框架,并使你能够将 AOP 透明地集成到你的软件中

    springsecurity所有jar包

    9. **spring-security-remoting**:支持远程调用的安全控制,例如RMI和Hessian。 10. **spring-security-oauth**:虽然不在3.1.2版本内,但Spring Security通常与OAuth集成,提供开放授权功能,允许第三方应用安全...

    spring RMI 远程接口调用

    Spring RMI(Remote Method Invocation)远程接口调用是Spring框架提供的一个特性,它允许你在分布式环境中调用对象的方法,使得应用程序能够跨越网络边界操作远程对象。这个技术在大型企业级应用中尤其有用,因为它...

    java-RMI技术讲解

    - **Spring中的实现**:在Spring框架中,实现RMI的过程通常包括以下步骤: - 在服务器端定义服务接口,并实现这些接口。 - 使用`org.springframework.remoting.rmi.RmiServiceExporter`类来注册服务。 - 客户端...

    spring rmi 简单应用

    Spring RMI(Remote Method Invocation)简单应用主要涉及的是在Java中使用Spring框架来实现远程方法调用的技术。RMI是Java提供的一种分布式计算能力,它允许一个Java对象调用网络另一端的Java对象的方法,实现了...

    rmi与spring整合实例

    在IT行业中,远程方法调用(Remote Method Invocation,RMI)和Spring框架是两个非常重要的概念,它们在分布式系统开发中发挥着关键作用。RMI是Java平台提供的一种技术,用于在不同Java虚拟机(JVM)之间进行对象间...

    spring和RMI分布式整合源码

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

    spring+rmi非本地实现

    在这个“spring+rmi非本地实现”的项目中,我们有两个主要部分:客户端(client)和服务端(rmiserver)。让我们深入探讨一下这两个部分以及它们如何协同工作。 1. **服务端(rmiserver)**: - **创建RMI接口**:...

    SpringRMI小例子

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

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

    本文主要讨论的是如何将Hessian RPC与RMI技术整合到Structs、Spring、Hibernate和Ibatis这四个关键的Java开发框架中,以构建一个高效、灵活的分布式应用程序。 1. **Hessian配置说明**: Hessian的配置通常涉及...

    Spring RMI小例子

    Spring RMI(Remote Method Invocation)是Java平台上的远程方法调用技术,结合Spring框架,能够帮助开发者轻松地创建分布式应用程序。在这个"Spring RMI小例子"中,我们将深入理解Spring如何简化RMI的使用,以及...

    spring-framework-reference 4.3.8.RELEASE

    Framework supports declarative transaction management, remote access to your logic through RMI or web services, and various options for persisting your data. It offers a full-featured MVC framework, ...

    spring2.5 -3.0 hibernate3.3 jar包说明

    支持远程调用功能,例如EJB、JMS、RMI、Hessian、Burlap、HttpInvoker、JAX-RPC等。 10. **spring-support.jar** 提供了一些额外的功能支持,如缓存管理、定时任务、邮件服务等。 11. **spring-web.jar** ...

Global site tag (gtag.js) - Google Analytics