`
goon
  • 浏览: 185958 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

hessian——源码分析(三)------ HessianSkeleton

 
阅读更多

HessianSkeleton是Hessian server端的核心类,主要功能是接收网络输入流(被包装为AbstractHessianInput),反序列化输入流得到methodName和参数,然后调用服务端的服务,得到结果后序列化为输出流,返回给客户端,主要流程如下图所示:

HessianSkeleton的核心代码如下所示:

 

[java] view plaincopy
  1. public void invoke(Object service,  
  2.              AbstractHessianInput in,  
  3.              AbstractHessianOutput out)  
  4.     throws Exception  
  5.   {  
  6.     ......      
  7.     String methodName = in.readMethod();  
  8.     Method method = getMethod(methodName);  
  9.     ......  
  10.     Class []args = method.getParameterTypes();  
  11.     Object []values = new Object[args.length];  
  12.     for (int i = 0; i < args.length; i++) {  
  13.       values[i] = in.readObject(args[i]);  
  14.     }  
  15.     Object result = null;  
  16.       
  17.     try {  
  18.       result = method.invoke(service, values);  
  19.     } catch (Throwable e) {  
  20.       ......  
  21.     }  
  22.     // The complete call needs to be after the invoke to handle a  
  23.     // trailing InputStream  
  24.     in.completeCall();  
  25.       
  26.     out.startReply();  
  27.     out.writeObject(result);  
  28.       
  29.     out.completeReply();  
  30.     out.close();  
  31.   }  

 

主流程代码非常清晰,不需要太多解释,关键的地方在于对网络流的序列化和反序列化,我会在hessian io分析的部分中进行详细阐述

分享到:
评论

相关推荐

    hessian-lite-3.2.1-fixed-2.jar

    com.alibaba:hessian-lite:jar:3.2.1-fixed-2 hessian-lite hessian-lite-3.2.1-fixed-2.jar

    hessian-4.0.63-API文档-中文版.zip

    赠送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-4.0.63-API文档-中英对照版.zip

    赠送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-3.3.6-API文档-中英对照版.zip

    赠送jar包:hessian-3.3.6.jar 赠送原API文档:hessian-3.3.6-javadoc.jar 赠送源代码:hessian-3.3.6-sources.jar 包含翻译后的API文档:hessian-3.3.6-javadoc-API文档-中文(简体)-英语-对照版.zip 对应Maven...

    hessian-4.0.51-src

    在解压的"**hessian-4.0.51-src**"源码包中,主要包含两个关键文件:"**pom.xml**"和"**src**"。 1. **pom.xml**:这是Maven项目的配置文件,定义了项目依赖、构建过程等信息。通过这个文件,我们可以看到Hessian ...

    hessian-3.3.6-API文档-中文版.zip

    赠送jar包:hessian-3.3.6.jar; 赠送原API文档:hessian-3.3.6-javadoc.jar; 赠送源代码:hessian-3.3.6-sources.jar; 赠送Maven依赖信息文件:hessian-3.3.6.pom; 包含翻译后的API文档:hessian-3.3.6-javadoc-...

    hessian-3.0.20-src.jar

    hessian是一个轻量级的Java Remoting方案

    hessian-lite-3.2.1-fixed-2-sources.jar

    java运行依赖jar包

    《美团大众点评微服务实践——服务框架-Pigeon-的设计与实现》.pdf

    微服务实践-服务框架Pigeon的设计与实现 服务框架Pigeon概述 美团大众点评微服务实践中,服务框架Pigeon扮演...Pigeon提供了基于Hessian和Thrift的序列化机制,通过Netty实现自定义TCP协议格式,开发成本低,性能高。

    hessian最新源码分析.pdf

    总结一下,Hessian的源码分析主要关注客户端的`HessianProxy`和服务器端的`HessianSkeleton`这两个核心类。它们分别负责客户端的调用代理和服务器端的请求处理。源码中包含了方法名缓存、特殊方法的本地处理、以及...

    hessian-4.0.7-src.jar

    Hessian 框架源码jar包 hessian-4.0.7-src.jar

    基于原生Hessian v4.0.51的SOFA-Hessian设计源码优化版

    优化后的SOFA-Hessian源码项目包含317个文件,其中有300个Java源文件,这些文件构成了项目的主要代码部分。而剩余的7个文件,包括XML、YML、Markdown、HTML等,以及支持Shell脚本运行,表明了项目除了核心代码之外,...

    hessian-3.1.6.jar

    hessian-3.1.6.jarhessian-3.1.6.jar

    dubbo-hessian-lite:适用于Apache Dubbo的Hessian Lite

    Hessian-lite最初是的Apache dubbo嵌入版本。 然后,此模块与Dubbo分离。 所有分支:2.5.x,2.6.x(自2.6.3起)和2.7.x都依赖于它,请查看详细信息: 现在,我们正在尝试建立一个黑森州小组以使黑森州社区的维护者...

    hessian-3.2.0源码

    hessian-3.2.0源码,在做分布式交互时,可能要重写hessian

    hessian-lite

    三、Hessian-lite在Dubbo中的作用 1. **远程调用**:在Dubbo框架中,Hessian-lite用于实现服务调用的二进制序列化和反序列化,使得远程方法调用(RMI)更加高效。它将Java对象转换为二进制流,通过网络发送,然后在...

    hessian学习基础篇——序列化和反序列化

    通过阅读和分析Hessian的源码,我们可以了解其如何编码和解码各种数据类型,以及如何优化序列化和反序列化的过程。这对于优化自定义序列化逻辑或者解决Hessian使用中遇到的问题非常有帮助。 总结起来,Hessian是一...

    Hessian多个版本打包下载

    这个压缩包包含了Hessian的多个版本,分别是Hessian3.1.6、Hessian3.2.1以及Hessian4.0.7。每个版本都有其特定的功能改进和优化,了解这些版本的区别和适用场景对于开发者来说至关重要。 Hessian3.1.6是Hessian的一...

Global site tag (gtag.js) - Google Analytics