此处不是对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 完成,形成了前端调用后端程序,如后端调用后端一样简单的效果。
分享到:
相关推荐
2. **简单类型支持**:Hessian支持基本的Java数据类型,如整型、浮点型、字符串、日期等,并且可以序列化和反序列化复杂对象。 3. **流式传输**:Hessian协议允许数据分块传输,这意味着服务端可以立即响应部分结果...
**Hessian的基本原理** Hessian是一种二进制的Web服务协议,它将Java对象序列化为高效的二进制格式,减少了网络传输的数据量。与基于XML的SOAP相比,Hessian的性能更高,因为XML解析和生成的开销较大。Hessian支持两...
Hessian 协议格式 Hessian 协议是一种轻量级的 remoting on http 工具,使用简单的方法...通过对 Hessian 协议报文格式的分析,我们可以更好地理解 Hessian 协议的工作原理,并更好地应用 Hessian 协议在实际项目中。
Hessian矩阵是图像处理和计算机视觉领域中一个重要的数学工具,尤其在特征检测和结构分析...在深入理解Hessian矩阵及其应用的同时,也需要熟悉图像处理的基本原理和OpenCV库的使用,这样才能更好地实现和优化此类算法。
在源码方面,了解Hessian的工作原理和实现机制对于开发者来说非常有价值。你可以深入研究其内部的序列化和反序列化算法,以及如何处理不同类型的数据,如基本类型、对象、数组等。同时,理解Hessian如何处理异常、...
下面我们将深入探讨Hessian的基本概念、工作原理以及如何使用。 ### 一、Hessian的基本概念 1. **二进制格式**: Hessian使用二进制格式进行数据序列化和反序列化,与XML或JSON等文本格式相比,其数据体积更小,...
首先,让我们深入了解Hessian的工作原理。Hessian协议基于HTTP,但采用了二进制编码,从而减少了网络传输的数据量,提高了通信效率。它支持基本类型、对象、数组以及XML和JSON等数据格式的序列化和反序列化。在Java...
通过研究其源码,开发者不仅可以深入了解Hessian的工作原理,还能更好地利用它优化应用性能,解决实际问题。对于想深入理解分布式通信机制的开发者来说,研究Hessian源码无疑是一次宝贵的学习机会。
本文将围绕"Hessian的字段序列化小记"这一主题,深入探讨Hessian的工作原理、序列化过程以及其在实际应用中的价值。 Hessian的目标是通过减少数据传输的体积来提高网络通信的效率。相比于XML和JSON等文本格式,...
以上代码展示了基本的Hessian Frangi滤波算法在Python中的实现过程。当然,实际应用中可能需要对参数进行调整,以适应不同场景的需求。此外,还可以结合其他图像处理技术,如形态学操作,进一步优化结果。 总的来说...
本文将深入探讨Hessian矩阵的概念以及牛顿法的工作原理,并分析这两种方法之间的差异。 #### 二、Hessian矩阵简介 **定义**:Hessian矩阵是多元函数二次导数的矩阵表示形式。对于一个具有两个变量\( x_1 \)和\( x_...
1. **Hessian协议**:理解Hessian的基本原理,包括它的二进制编码规则、如何序列化和反序列化对象,以及如何处理不同类型的数据,如基本类型、复杂对象和数组。 2. **Flex中的Hessian服务**:在Flex项目中如何配置...
1. **Hessian协议**:解释了Hessian协议的基本原理,包括其二进制格式如何节省带宽和提高网络传输效率,以及它支持Java、C++、Python等多种语言之间的互操作性。 2. **安装与配置**:可能介绍了如何在项目中添加...
本次我们将深入探讨Hessian 4.0.7版本,包括其jar包的使用以及源码分析,帮助开发者更好地理解和应用这个强大的工具。 一、Hessian 4.0.7.jar——核心库 `hessian-4.0.7.jar`是Hessian的核心库文件,它包含了...
《Hessian RPC技术详解与实践:基于hessian_test02.rar源码分析》 Hessian是一种高效的二进制RPC协议,由Caucho Technology开发,主要用于Java应用之间进行远程调用。它通过二进制序列化的方式,实现了简单、快速的...
2. **自动类型转换**:Hessian支持多种数据类型,包括基本类型、对象、数组等,并能自动进行类型转换,简化了接口的使用。 3. **简洁的API**:Hessian提供了简单易用的API,使得开发者可以快速地创建和部署Web服务。...
高斯分布下的Hessian矩阵和协方差矩阵之间的关系是概率论和统计学中的一个重要内容,特别是在贝叶斯方法在结构动力学和土木工程中...掌握这一点,有助于我们更好地理解在这些领域中应用概率模型和优化技术的基本原理。
【深入理解Dubbo框架:从基本原理到模拟实践的全面解析】 远程过程调用(RPC)是分布式系统中的一种核心技术,它使得一个程序能够像调用本地方法一样调用远程机器上的程序。RPC协议允许不同地址空间的程序之间进行...
1. **Frangi血管滤波器的基本原理**: Frangi滤波器是基于Hessian矩阵的,Hessian矩阵包含了图像二阶导数的信息,能够检测出图像中的边缘和斑点。对于每个像素,Frangi滤波器计算Hessian矩阵的特征值和特征向量,...
**BFGS(Broyden-Fletcher-Goldfarb-...由于没有提供具体的代码或详细信息,我们无法深入探讨细节,但上述内容已经概述了BFGS算法的基本原理和流程。对于进一步学习和实践,可以参考相关的优化算法书籍或在线资源。