此处不是对Hessian配置的描述,只对其基本原理分析。
1.创建代理类:
在前端一般调用
HessianProxyFactory.create(Class serviceInterface,String url)
,获取对后台service的一个代理访问类对象;
HessianProxyFactory.create方法的内部是这样做的:
URL url = new URL(urlName);
handler = new HessianProxy(this, url);
return Proxy.newProxyInstance(loader, new Class[] { api,
HessianRemoteObject.class }, handler);
其中 Proxy.newProxyInstance 为Jdk提供的创建动态代理的工具类,
api即为我们传入的,后端会实现的service的接口,
loader为加载api,和HessianRemoteObject.class两个类所需要的ClassLorder,
handler其实为回调类,重点其实在这里,完成了相应远程方法的调用,以及参数的序列化;
2.远程方法调用:
第一步创建完动态代理类后,我们就得到了一个貌似对与后端类的引用,其实只是一个披着serviceInterface外衣的动态代理对象而已,当调用serviceInterface接口定义的相应方法时,
动态代理类就会去调用HessianProxy中定义的方法:
public Object invoke(Object proxy, Method method, Object[] args)
在这个方法中,有调用
conn = sendRequest(mangleName, args);
在sendRequest方法中完成一次对后台的请求:如下
URLConnection conn = this._factory.openConnection(this._url);
os = conn.getOutputStream();
AbstractHessianOutput out = this._factory.getHessianOutput(os);
out.call(methodName, args);
out.flush();
3.过滤器拦截请求:
我们在web.xml里已经定义的过滤器,会拦截此次请求,然后调用相应的后端程序,然后,将结果序列化,返回。
4.前端 HessianProxy 中对返回结果进行反序列化,返回给业务程序
所以最重要的过程,对通讯过程的封装都是由 HessianProxy 完成,形成了前端调用后端程序,如后端调用后端一样简单的效果。
分享到:
相关推荐
hessian最新源码分析.pdf
该案例有hessian java python,该案例有hessian java python,该案例有hessian java python
Hessian多个版本下载,包括Hessian3.1.6,Hessian3.2.1,Hessian4.0.7
hessian资料3hessian资料3hessian资料3hessian资料3hessian资料3
hessian源码
Hessian服务端 入门程序
基于Hessian的冠状动脉血管造影分割方法
NULL 博文链接:https://paopaochao3.iteye.com/blog/550771
dubbo-hessian协议http请求demo
多尺度hessian滤波器,图像增强,参考frangi的论文
1、开发环境:eclipse3.1 + jdk1.5; 2、样例说明: 1)spring + hessian; 2)hessian。 3、样例内容: 1)HashMap传递; 2)简单对象传递; 3)异常处理
Hessian android客户端异步请求访问包
hessian是一个轻量级的Java Remoting方案
hessian 服务端 客户端 可运行
项目选定Hessian作为web service的实现方式,确实很轻量级,速度就跟直接用socket差不多,全是二进制传送节约了不少开销。但是在使用过程中有业务需要是必须获得远程端的ip地址,主机名等信息的。翻便Hessian的文档...
Hessian案列代码
赠送jar包:hessian-4.0.63.jar; 赠送原API文档:hessian-4.0.63-javadoc.jar; 赠送源代码:hessian-4.0.63-sources.jar; 赠送Maven依赖信息文件:hessian-4.0.63.pom; 包含翻译后的API文档:hessian-4.0.63-...
一个简单的Hessian,简单介绍了Hessian的使用方式,介绍了Hessian和Spring集成的使用方式,以及单独使用Hessian的方式。
Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。参考文档地址...
hessian4.0.37.jar