【问题标题】:Spring RMI Remoting Annotation ConfigurationSpring RMI 远程注解配置
【发布时间】:2012-06-21 12:30:45
【问题描述】:

我一直在为此寻找一些时间,但我似乎无法找到答案。我正在使用 Spring RMI 远程处理,我想使用注释配置。

这可能吗?

【问题讨论】:

    标签: java spring rmi


    【解决方案1】:

    据我所知,spring 没有基于标准注释的 RMI 支持。我遇到了this link它是泰语),它简要介绍了创建可在 spring 容器环境中使用的 自定义注释

    【讨论】:

    【解决方案2】:

    正如@Santosh 所回答的,RMI 支持没有标准注释。但是您可以使用标准 bean 注释来注册 RMI bean。

    在服务端执行此操作(参数 barService 是 Spring 注入的服务的实现 -> 所以需要已经注册了这样的 bean):

    @Bean
    public RmiServiceExporter registerService(BarService barService) {
        RmiServiceExporter rmiServiceExporter = new RmiServiceExporter();
        rmiServiceExporter.setServiceName("BarService");
        rmiServiceExporter.setService(barService);
        rmiServiceExporter.setServiceInterface(BarService.class);
        rmiServiceExporter.setRegistryPort(5000);
    
        return rmiServiceExporter;
    }
    

    客户端:

    @Bean
    public BarService createBarServiceLink() {
        RmiProxyFactoryBean rmiProxyFactoryBean = new RmiProxyFactoryBean();
        rmiProxyFactoryBean.setServiceUrl("rmi://localhost:5000/BarService");
        rmiProxyFactoryBean.setServiceInterface(BarService.class);
        rmiProxyFactoryBean.afterPropertiesSet();
        return (BarService) rmiProxyFactoryBean.getObject();
    }
    

    【讨论】:

    • 我做的和你一样,但是我得到了一个EOFException: The client aborted the connection,我在一个 Web 容器 (Tomcat) 中运行 Spring Context。你遇到过这样的问题吗?
    • 我正在尝试使用 Spring 和 Dropwizard 将我的应用程序从基于 xml 和属性文件的配置转换为基于注释和 java 的配置。我尝试在我的应用程序中使用您的客户端代码,但它给出了一个类转换异常。我无法在服务端进行更改,因为它是一个不同的系统,只能在客户端进行更改。这可行吗?如何在不接触服务端(其他系统代码)的情况下做到这一点。
    猜你喜欢
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多