一、服务端
1、web.xml配置
加上如下代码:
<servlet>
<servlet-name>accountExporter</servlet-name>
<servlet-class>org.springframework.web.context.support.HttpRequestHandlerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>accountExporter</servlet-name>
<url-pattern>/remoting/AccountService</url-pattern>
</servlet-mapping>
2、在spring配置文件加入如下代码
<bean id="dataServernew" class="com.imchooser.infoms.rmi.impl.DataServerImpl" scope="prototype">
<property name="baseDao" ref="baseDaoImpl" />
</bean>
<bean name="accountExporter" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
<property name="service" ref="dataServernew"/>
<property name="serviceInterface" value="com.imchooser.infoms.rmi.DataServer"/>
</bean>
其中DataServer为暴露服务的接口bean;baseDaoImpl为具体实现类。
二、客户端
1、在spring配置文件加上如下代码
<bean id="httpInvokerProxy" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
<property name="serviceUrl" value="http://服务端ip:服务端端口/项目名称/remoting/AccountService"/>
<property name="serviceInterface" value="com.imchooser.infoms.rmi.DataServer"/>
</bean>
<bean id="rmiserverImpl"
class="com.imchooser.infoms.rmi.impl.RMIServerImpl" autowire="byName" >
<property name="data" ref="httpInvokerProxy"/>
</bean>
其中DataServer为客户端的接口bean。本地接口不需要创建这个接口的实现类。
客户端接口bean必须与服务端名称一样,然后在客户端的实现类RMIServerImpl中创建个DataServer的变量,变量名为data。
这样在客户端调用DataServer的方法,就会自动调用到服务端相对应的方法