zoukankan      html  css  js  c++  java
  • Hessian 服务端流程

    服务端流程

       采用spring mvc+hessian形式,解析请求处理器使用BeanNameUrlHandlerMapping.

       1.创建一个类OurServiceExporter,继承HessianExporter类,实现HttpRequestHandler接口(spring mvc),

       2.将请求转发至OurServiceExporter这个类,并配置service以及serviceInterface属性:

      <bean id="defaultHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
      <!-- 查询余额 -->
      <bean id="aaImpl" class="com.lot.account.hess.impl.AccountAmountImpl"/>
      <bean name="/accAmount" class="com.lot.hess.OurServiceExporter">
      <property name="service" ref="aaImpl"/>
      <property name="serviceInterface" value="com.lot.init.hess.IAccountAmount"/>
      </bean>

       3. 请求进来后,调用父类HessianExporter的invoke方法,将request的输入流以及输出流作为参数传入.

         

      4.在初始化HessianExporter的时候,会预先创建HessianSkeleton,并把传入一个代理service(spring的ProxyFactory实现代理)以及serviceInterface作为构造参数

          

       5. HessianExporter的invoke方法将输入流转换为AbstractHessianIuput(暂命为in),将输出流转换为AbstractHessianOutput(暂命为out),设置输入流输出流的序列化实现类调用HessianSkeleton的invoke方法

          

      6.HessianSkeleton的invoke方法,从in读取方法名method,参数长度,并将参数反序列化,使用method.invoke调用方法,并将返回值使用out写回

        

         

        具体细节,还得多看看源码,这里只是粗略的流程,写得不好,请担待。

  • 相关阅读:
    群发邮件2
    谈谈C#中的三个关键词new , virtual , override
    一个简单的jQuery插件ajaxfileupload实现ajax上传文件例子
    网站静态化结构
    第四十七章 天神的邀请
    asp.net 异步群发邮件时遭遇到的问题 ddddddddd
    第四十章 远方的消息
    商用群发p2p网络
    第四十八章 三大客卿
    第四十五章 你没让我失望
  • 原文地址:https://www.cnblogs.com/zgz21/p/6526272.html
Copyright © 2011-2022 走看看