zoukankan      html  css  js  c++  java
  • 远程调用——hessian使用入门

    Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebServiceHessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。

    常见的远程调用的技术:

    1webserviceCXFaxissoap 

    2httpclient

    3hessian---http协议、二进制数据

    4dubbo---阿里巴巴

    hessian有两种发布服务的方式:

    1、使用hessian框架自己提供的Servlet发布

    2、和spring整合发布服务

    一、什么是Hessian

    Hessian 是一个基于 binary-RPC 实现的远程通讯 library。使用二进制传输数据。
    Hessian通常通过Web应用来提供服务,通过接口暴露。
    Servlet和Spring的DispatcherServlet都可以把请求转发给Hessian服务。
    由以下两种方式提供,分别为:
    com.caucho.hessian.server.HessianServlet、org.springframework.web.servlet.DispatcherServlet。

    二、入门案例

    2.1 服务端开发:
    第一步:创建一个web项目,并导入hessian的jar包
    第二步:创建一个接口

    public interface HelloService {
      public String sayHello(String name);
      public List<User> findAllUser();
    }

    第三步:提供上面接口的实现类

    public class HelloServiceImpl implements HelloService{
      public String sayHello(String name) {
      System.out.println("sayHello方法被调用了");
      return "hello " + name;
      }
    
    public List<User> findAllUser() {
      List<User> list = new ArrayList<User>();
      list.add(new User(1, "小王"));
      list.add(new User(2,"小白"));
      return list;
      }
    }

    第四步:在web.xml中配置服务

    <servlet>
    <servlet-name>hessian</servlet-name>
    <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
    <init-param>
    <param-name>home-class</param-name>
    <param-value>cn.zang.service.HelloServiceImpl</param-value>
    </init-param>
    <init-param>
    <param-name>home-api</param-name>
    <param-value>cn.zang.service.HelloService</param-value>
    </init-param>
    </servlet>
    <servlet-mapping>
    <servlet-name>hessian</servlet-name>
    <url-pattern>/hessian</url-pattern>
    </servlet-mapping>

    wsimport
    wsdl2java

    2.2 客户端开发:
    第一步:创建一个客户端项目,并导入hessian的jar包
    第二步:创建一个接口(和服务端接口对应)

    public interface HelloService {
      public String sayHello(String name);
      public Object findAllUser();
    }

    第三步:使用hessian提供的方式创建代理对象调用服务

    HessianProxyFactory factory = new HessianProxyFactory();
    HelloService proxy = (HelloService) factory.create(HelloService.class, "http://localhost:8089/hessian_server/hessian");
    String ret = proxy.sayHello("test");
    System.out.println(ret);
    Object users = proxy.findAllUser();
    System.out.println(users);
  • 相关阅读:
    java实现趣味拼算式
    windows下安装docker
    Docker_入门?只要这篇就够了!(纯干货适合0基础小白)
    网关支付、银联代扣通道、快捷支付、银行卡支付分别是怎么样进行支付的?
    【深度解析】第三方支付的分类、接口与支付流程
    去外包公司的伙伴们小心了!——亲身经历,数数外包公司的坑
    一个tomcat下部署多个项目或一个服务器部署多个tomcat
    tomcat部署web应用的4种方法以及部署多个应用
    datatables增删改查的实现
    基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
  • 原文地址:https://www.cnblogs.com/zjfjava/p/7078929.html
Copyright © 2011-2022 走看看