Hessian学习

1.什么是hessian?

Hessian是一个由Caucho Technology开发的轻量级二进制RPC协议。和其他Web服务的实现框架不同的是,Hessian是一个使用二进制格式传输的Web服务协议的框架,相对传统soap web service,更轻量,更快速。它的好处在于免除了一大堆附加的API包,例如XML的处理之类的jar包,这也就是为什么说它是一个轻量级的Web服务实现框架的原因,这个原因还在于手机上的应用程序可以通过Hessian提供的API很方便的访问Hessian的Web服务。

支持多种语言(跨语言平台的特性):

2.hessian中及格常见的问题?

Hessian 是由 caucho 提供的一个基于 binary-RPC 实现的远程通讯 library 。

2.1 、是基于什么协议实现的?

基于 Binary-RPC 协议实现。

2 2、怎么发起请求?

需通过 Hessian 本身提供的 API 来发起请求。

2.3 、怎么将请求转化为符合协议的格式的?

Hessian 通过其自定义的串行化机制将请求信息进行序列化,产生二进制流。

2.4 、使用什么传输协议传输?

Hessian 基于 Http 协议进行传输。

2.5 、响应端基于什么机制来接收请求?

响应端根据 Hessian 提供的 API 来接收请求。

2.6 、怎么将流还原为传输格式的?

Hessian 根据其私有的串行化机制来将请求信息进行反序列化,传递给使用者时已是相应的请求信息对象了。

2.7 、处理完毕后怎么回应?

处理完毕后直接返回, hessian 将结果对象进行序列化,传输至调用端。

3.hessian的基本案列

服务端(编写接口和实现该接口的类):

3.1:接口

package com.hessian.service;

public interface HessianFunc {
        
    public String getAddressByMobille(String phone);
    
}

3.2:实现类

package com.hessian.service;

public class HsessianFuncImpl implements HessianFunc {

    @Override
    public String getAddressByMobille(String phone) {
        
    String result="手机号"+phone+"的归属地是上海";
        
    return result;
    
    }
}

客户端:(调用服务端,必须要提供一个接口--来自服务端的接口)

package com.hession.client;

import java.net.MalformedURLException;

import com.caucho.hessian.client.HessianProxyFactory;
import com.hessian.service1.HessianFunc34;

public class TestHession {
    public static void main(String[] args) throws Exception, Exception {
        
//        创建hessian代理工厂
        HessianProxyFactory proxyFactory = new HessianProxyFactory();
        
//        调用(默认:hessian的服务地址,报名和类名全部一样才可以调用)
//        HessianFunc func = (HessianFunc) proxyFactory.create("http://localhost:8080/HessianServer/mobile");
        
        
//        基于方法上的服务调用(只要方法一样,则就可以调用服务端的接口)
        HessianFunc34 func = (HessianFunc34) proxyFactory.create(HessianFunc34.class, "http://localhost:8080/HessianServer/mobile");
        
//        通过调用获取数据
        String mobille = func.getAddressByMobille("1333333333");
        
        System.out.println(mobille);
        
    }
}

客户端需要的接口:

package com.hessian.service1;

public interface HessianFunc34 {
        
    public String getAddressByMobille(String phone);
    
}

根据以上结果打印:

手机号1333333333的归属地是上海

原文地址:https://www.cnblogs.com/lichangyun/p/8686434.html