【发布时间】:2012-06-21 12:30:45
【问题描述】:
我一直在为此寻找一些时间,但我似乎无法找到答案。我正在使用 Spring RMI 远程处理,我想使用注释配置。
这可能吗?
【问题讨论】:
我一直在为此寻找一些时间,但我似乎无法找到答案。我正在使用 Spring RMI 远程处理,我想使用注释配置。
这可能吗?
【问题讨论】:
据我所知,spring 没有基于标准注释的 RMI 支持。我遇到了this link(它是泰语),它简要介绍了创建可在 spring 容器环境中使用的 自定义注释。
【讨论】:
正如@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。你遇到过这样的问题吗?