RPC(Remote procedure call) 远程服务调用。
dubbox就是RPC框架,hessian是简单的RPC实现。
首先需要有接口及其实现类:
接口。
public interface HessianService {
String getHessianServiceMethod();
}
实现类
public class HessianServiceImpl implements HessianService{
@Override
public String getHessianServiceMethod() {
System.out.println("On hessian service implement class!");
return "hessian service";
}
}
servlet映射:
在web.xml里面加入
<servlet>
<servlet-name>remoting</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 默认是加载WEB-INF/servlet-name+"-servlet.xml"文件,在这里可以配置为加载WEB-INF/classes/remoting-servlet.xml这个文件 -->
<init-param>
<param-name>namespace</param-name>
<param-value>classes/remoting-servlet</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>remoting</servlet-name>
<url-pattern>/remoting/*</url-pattern>
</servlet-mapping>
再到remoting-servlet.xml中加入实现类映射:
<!-- hessian RPC -->
<bean name="HessianService" class="com.*.hessian.impl.HessianServiceImpl" />
<bean name="/hessian/HessianService"
class="org.springframework.remoting.caucho.HessianServiceExporter">
<!-- service引用的具体实现类 -->
<property name="service" ref="HessianService"></property>
<property name="serviceInterface" value="com.*.hessian.HessianService"></property>
</bean>
然后简单的hessianRPC就可以实现了。
测试:
String url="http://127.0.0.1:8080/spring/remoting/hessian/HessianService";//spring是项目名
HessianProxyFactory hf= new HessianProxyFactory();
HessianService hessianService = (HessianService)hf.create(HessianService.class, url);
String hessianServiceMethod = hessianService.getHessianServiceMethod();
System.out.println("--------"+hessianServiceMethod);