Spring RMI配置多个服务
来源:互联网 发布:淘宝运营简历模板下载 编辑:程序博客网 时间:2024/05/01 00:58
在使用Spring RMI时可能会遇到发布多个服务的需求,假设一个服务要操作文件,另一个服务要往屏幕上打印“hello world”。难道要把这两个风马牛不相及的服务写在一个接口里吗!如果真这样那结构也太差了。
网上有人问这个问题:“http://topic.csdn.net/u/20090702/11/9bcf60e5-f3f8-4401-a41d-2f98535988b9.html”,看样子这个问题难住了一些人,因为他们想在一个serviceName里面发布多个serviceInterface。其实转换个思维也就不会被难倒了。倘若在一个serviceName里面发布多个serviceInterface,那么service又该怎么配呢,难道用个list将serviceInterface和service对应起来?显然是行不通的。
解决办法很简单:配置多个RmiServiceExporter的bean,使不同的服务(属性:service)用不同的服务名(属性:serviceName)和接口(属性:serviceInterface)。给个demo就更清晰了:
1: <bean id="oper1" class="***.Oper1"></< span>bean>
2: <bean id="rmiService_oper1" class="org.springframework.remoting.rmi.RmiServiceExporter">
3: <property name="serviceName">
4: <value>oper1</< span>value>
5: </< span>property>
6: <property name="service">
7: <ref local="oper1" />
8: </< span>property>
9: <property name="serviceInterface">
10: <value>***.IOper1</< span>value>
11: </< span>property>
12: <property name="registryPort">
13: <value>9990</< span>value>
14: </< span>property>
15: </< span>bean>
16:
17: <bean id="oper2" class="***.Oper2"></< span>bean>
18: <bean id="rmiService" class="org.springframework.remoting.rmi.RmiServiceExporter">
19: <property name="serviceName">
20: <value>oper2</< span>value>
21: </< span>property>
22: <property name="service">
23: <ref local="oper2" />
24: </< span>property>
25: <property name="serviceInterface">
26: <value>***.IOper2</< span>value>
27: </< span>property>
28: <property name="registryPort">
29: <value>9990</< span>value>
30: </< span>property>
31: </< span>bean>
service、serviceName和serviceInterface都不一样,端口可以相同。
客户端的配置也很简单了:
1: <bean id="rmiClient_oper1" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
2: <property name="serviceUrl">
3: <value>rmi://192.168.0.***:9990/oper1</< span>value>
4: </< span>property>
5: <property name="serviceInterface">
6: <value>***.IOper1</< span>value>
7: </< span>property>
8: </< span>bean>
9: <bean id="rmiClient_oper2" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
10: <property name="serviceUrl">
11: <value>rmi://192.168.0.***:9990/oper2</< span>value>
12: </< span>property>
13: <property name="serviceInterface">
14: <value>***.IOper2</< span>value>
15: </< span>property>
16: </< span>bean>
main里运行:
1: public static void main(String[] args) {
2: ApplicationContext ctx = new ClassPathXmlApplicationContext(
3: "applicationContext-client.xml");
4: IOper1 o1 = (IOper1) ctx.getBean("rmiClient_oper1");
5: o1.exeuteFile();
6:
7: IOper2 o2 = (IOper2) ctx.getBean("rmiClient_oper2");
8: o2.printHelloWorld();
9: }
这主要是个思路问题,没什么巧的。
0 0
- Spring RMI配置多个服务
- Spring配置RMI服务
- RMI发布多个服务(接口)
- Spring RMI暴露服务
- Spring rmi配置
- 使用spring配置RMI
- spring配置rmi
- Spring Rmi配置
- Spring配置之RMI
- Spring RMI 源码浅析-RmiServiceExporter 导出服务
- Spring RMI 源码浅析-RmiProxyFactoryBean 调用服务
- Spring RMI 源码浅析-RmiProxyFactoryBean 调用服务
- 利用spring RMI 调用远程服务
- (一) spring 远程服务之rmi
- 使用spring发布和访问RMI服务
- Spring中合理的配置RMI
- rmi服务
- rmi服务
- 为什么贪官总是层出不穷 打了又来了 但人为财死 鸟为食亡!
- Android开发之ListView实现不同品种分类分隔栏的效果(非ExpandableListView实现)
- 关于java 注解中元注解Inherited的使用详解
- hdu1715 大菲波数(高精度)
- 常见设计模式解析和实现(C++)Prototype模式(原型模式)
- Spring RMI配置多个服务
- 常见设计模式解析和实现(C++)Adapt模式
- 常见设计模式解析和实现(C++)FlyWeight模式
- AVD可以运行android应用无法运行
- spring mvc4使用及json 日期转换解决方案
- Unity学习小结4 - NGUI的几点性能问题
- 单片机Proteus虚拟仿真
- 多线程编程
- c++学习笔记之 文件的读写操作