hessian框架入门实战
概述
Hessian是caucho公司开发的一种基于二进制RPC协议(Remote Procedure Call protocol)的轻量级远程调用框架。具有多种语言的实现,但用的最多的当然是Java实现。
使用Hession进行远程调用很容易,基本步骤为:
实战
主要步骤
- 创建一个接口作为公共的API
- 使用HessianProxyFactory建立一个客户端
- 创建一个服务实现接口
- 在应用中配置该服务
接下来我们就进入实战环节,实际操作一下。
1. 下载hessian-4.0.37.jar
下载hession的jar包,该jar包是服务端和客户端都需要使用的。
2. 服务端开发(服务提供者)
此处我们定义了一个接口作为公共的API
/**
* @date 2017-4-1 下午03:33:39
* @function Hessian服务接口
*/
public interface Basic {
public String sayHello(String name);
}
实现服务接口
public class BasicImpl implements Basic {
public String sayHello(String name) {
return "hello, " + name + " is using Hessian";
}
}
在web.xml中配置该服务,通过home-class和home-api两个参数传递给HessianServlet,然后将HessianServlet配置到web.xml的
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
<init-param>
<param-name>home-class</param-name>
<!-- 服务实现类 -->
<param-value>com.snowalker.hessian.service.BasicImpl</param-value>
</init-param>
<init-param>
<param-name>home-api</param-name>
<!-- 服务接口 -->
<param-value>com.snowalker.hessian.service.Basic</param-value>
</init-param>
</servlet>
到此服务提供者就开发完毕了。
3. 客户端开发(服务消费者)
首先复制公共接口作为服务API,实际开发中常将接口的声明单独作为一个工程添加到其他项目的依赖中。注意提前添加hession依赖
public interface Basic {
public String sayHello(String name);
}
编写服务调用代码,为了测试方便我们使用main方法进行测试
public class Main {
public static void main(String[] args) throws MalformedURLException {
String url = "http://localhost:8080/HessionDemoServer/hello";
HessianProxyFactory factory = new HessianProxyFactory();
Basic basic = (Basic) factory.create(Basic.class, url);
System.out.println(basic.sayHello("snowalker"));
}
}
小结
可以看到我们在此处定义了一个HessionProxyFactory,通过访问服务端的接口从而使Hession代理工厂实例化一个服务实例。
然后我们通过接口调用了具体的服务提供者方法,达到了我们想要的结果。