RMI

mac2022-06-30  23

 

1. 发布RMI服务

在Spring配置文件中

<!-- RMI配置参数--> <bean id="rmiServerHost" factory-method="setProperty" class="java.lang.System" lazy-init="false"> <constructor-arg value="java.rmi.server.hostname"/> <constructor-arg value="${ipAddress}"/> </bean><!-- <bean factory-method="setProperty" class="java.lang.System" lazy-init="false"> <constructor-arg value="java.rmi.dgc.leaseValue"/> <constructor-arg value="300000"/> </bean> <bean factory-method="setProperty" class="java.lang.System" lazy-init="false"> <constructor-arg value="java.rmi.dgc.gcInterval"/> <constructor-arg value="900000"/> </bean> --><!-- 接口IService类Service实现IService  --><bean id="serviceExporter" class="org.springframework.remoting.rmi.RmiServiceExporter"> <property name="service" ref="Service" />      //服务接口的实现类 <property name="serviceName" value="MyService" />     //自定义服务名称 <property name="serviceInterface" value="IService" />   //服务接口 <property name="registryPort" value="9000" />      //端口    </bean>

 

 

2. 客户端调用

a.public static IService getService(String url){ try { RmiProxyFactoryBean rmiProxyFactoryBean = new RmiProxyFactoryBean(); rmiProxyFactoryBean.setServiceUrl(url); rmiProxyFactoryBean.setServiceInterface(IService.class); rmiProxyFactoryBean.setRefreshStubOnConnectFailure(true); rmiProxyFactoryBean.afterPropertiesSet(); IService service = (IService)rmiProxyFactoryBean.getObject();return service; }catch (Exception e){ throw new RuntimeException("获取程序服务[" + url + "]出错", e); } }//url的格式为 rmi://ip:port/ServiceName 如:rmi://127.0.0.1:9000/MyServiceb.在spring配置文件中 <bean id="service" class="org.springframework.remoting.rmi.RmiProxyFactoryBean"> <!-- 接收的rmi协议 --> <property name="serviceUrl" value="rmi://127.0.0.1:9000/MyService"/> <!-- 接收的rmi协议的接口 --> <property name="serviceInterface" value="IService"/></bean>//注入到Test类中<bean id="test" class="com.qinh.Test">  <property name="service" ref="service"/></bean>

 

转载于:https://www.cnblogs.com/QinH/p/4724732.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)