码迷,mamicode.com
首页 > 其他好文 > 详细

RPC远程调用 之 Hessian

时间:2018-01-24 22:06:02      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:img   span   调用本地   style   name   port   http   serve   bubuko   

  Hessian将网络传输的对象转换为二进制流通过Http进行传递,不过它是使用自己的序列化机制实现的编组与反编组,其支持的数据类型是有限制的,不支持复杂的对象。Hessian的优点是可以透过防火墙。

  Hessian也是轻量级的 ws服务,好处是不需要关心过程,调用时就像调用本地一样,毕竟是RMI,http的话,需要自己做好对象的解析  --------方便

 

以spring boot整合hessian为例

首先

服务端 和 客户端

添加hessian依赖

<dependency>    
      <groupId>com.caucho</groupId>    
       <artifactId>hessian</artifactId>    
        <version>4.0.38</version>
</dependency>


服务端

public interface HelloService {
  public String sayHello();
}


@Service("helloService")
public class HelloServiceImpl implements HelloService{
  @Override
  public String sayHello() {
    return "Hello Service!!!";
  }
}


@Component
public class HelloServicePublic {
  @Autowired
  private HelloService helloService;
  //发布服务
  @Bean(name = "/helloService")
  public HessianServiceExporter accountService() {
    HessianServiceExporter exporter = new HessianServiceExporter();
    exporter.setService(helloService);
    exporter.setServiceInterface(HelloService.class);
    return exporter;
  }
}

技术分享图片


客户端

public interface HelloService {
  public String sayHello();
}

 

 

@Component
public class HelloServiceClient {
  @Bean
  public HessianProxyFactoryBean helloClient() {
    HessianProxyFactoryBean factory = new HessianProxyFactoryBean();
    factory.setServiceUrl("http://localhost:8081/taskServer/helloService");
    factory.setServiceInterface(HelloService.class);
    return factory;
  }
}

 

 

@Controller
public class UserController {

  @RequestMapping(value="/getHelloRpc",method= RequestMethod.GET)
  @ResponseBody
  public String getHelloRpc(HttpServletRequest request ,ShopTaskUser user) {
    return helloService.sayHello();
  }

}

 

技术分享图片

简单,再也不需要自己做对象的解析了……

 

RPC远程调用 之 Hessian

标签:img   span   调用本地   style   name   port   http   serve   bubuko   

原文地址:https://www.cnblogs.com/xiexy/p/8343090.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!