RMI与Hession使用

来源:互联网 发布:java 为何工资高 编辑:程序博客网 时间:2024/06/14 13:08

RMI与Hession发布与调用

这里的RMI是基于spring的

1.1,RMI的发布

 <bean class="org.springframework.remoting.rmi.RmiServiceExporter">        <property name="serviceName" value="*Service"/>        <property name="service" ref="*Service"/>        <property name="serviceInterface" value="*.*.api.*Service"/>    </bean>


1.2,RMI的调用

  <bean id="rmiProxyFactoryBean" class="org.springframework.remoting.rmi.RmiProxyFactoryBean" abstract="true">        <property name="lookupStubOnStartup" value="false"/>        <property name="refreshStubOnConnectFailure" value="true"/>    </bean>    <bean id="**Service" parent="rmiProxyFactoryBean">        <property name="serviceUrl" value="rmi://${rmi.host}/remoteService" />        <property name="serviceInterface" value="*.*.*.api.service.*Service" />    </bean>

默认的端口是1099,可以通过属性registryPort进行设置


2.1 ,Hession的发布

web.xml添加

<!--Add hessian servlet --><servlet><servlet-name>remote</servlet-name><!-- 使用Spring的代理Servlet --><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>namespace</param-name><param-value>/remote-servlet</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>remote</servlet-name><url-pattern>/remote/*</url-pattern></servlet-mapping>

创建对应的remote-servlet.xml

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans>        <!-- 使用Spring的HessianServie做代理 -->    <bean name="/hessianARemoteService"       class="org.springframework.remoting.caucho.HessianServiceExporter">       <property name="service" ref="*Service" />       <property name="serviceInterface" value="*.*.*.api.*.AService" />    </bean>        <bean name="/hessianBRemoteService"       class="org.springframework.remoting.caucho.HessianServiceExporter">       <property name="service" ref="*Service" />       <property name="serviceInterface" value="*.*.*.api.*.BService" />    </bean>    </beans>

2.2调用Hession

<bean id="HessianAService"          class="org.springframework.remoting.caucho.HessianProxyFactoryBean">          <property name="readTimeout" value="10000"/>        <property name="serviceUrl" value="${url}/remote/hessianARemoteService" />          <property name="serviceInterface" value="*.*.*.api.*.AService" />      </bean>        <bean id="HessianBService"          class="org.springframework.remoting.caucho.HessianProxyFactoryBean">          <property name="readTimeout" value="10000"/>        <property name="serviceUrl" value="${url}/remote/hessianBRemoteService" />          <property name="serviceInterface" value="*.*.*.api.*.BService" />      </bean>



0 0
原创粉丝点击