Hessian学习(一)

说明

在公司熟悉代码的时候的,发现使用Hessian远程调用服务,以前没接触过,学习总结下

正文

Hessian是什么

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

关于Hessian更多的基础知识,详见:Hessian知识学习总结(一)——基础知识

Hessian的简单使用示例

在写代码前,先要清楚使用Hessian的注意事项:
服务端:

  • 包含Hessian的jar包
  • 设计一个接口,用来给客户端调用
  • 实现该接口的功能
  • 配置web.xml, 配好相应的servlet
  • 由于使用二进制RPC协议传输数据,对象必须进行序列化,实现Serializalbe接口
  • 对于复杂对象可以使用Map的方法传递

客户端:

  • 包含Hessian的jar包
  • 具有和服务器端结构一样的接口,包括命名空间最好一样
  • 利用HessianProxyFactory调用远程接口

jar包下载地址: http://hessian.caucho.com/

服务端代码

服务接口:

package com.basic.server;

public interface IHello {

    String sayhello(String msg);
}

接口实现类:

package com.basic.server.impl;

import com.basic.server.IHello;

public class HelloImpl implements IHello {

    @Override
    public String sayhello(String msg) {
        return "test of Hessian" + " via " + msg;
    }

}

web.xml配置:

<servlet>
    <servlet-name>HessianServlet</servlet-name>
    <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
    <init-param>
        <param-name>service-class</param-name>
        <param-value>com.basic.server.impl.HelloImpl</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>HessianServlet</servlet-name>
    <url-pattern>/hessian</url-pattern>
  </servlet-mapping>

服务端项目结构:
这里写图片描述

客户端代码:

package com.basic.server.test;

import java.net.MalformedURLException;

import com.basic.server.IHello;
import com.caucho.hessian.client.HessianProxyFactory;

public class MyClient {

    public static void main(String[] args) {
        try {
            String url = "http://localhost:8081/HessainDemo/hessian";
            HessianProxyFactory factory = new HessianProxyFactory();
            factory.setOverloadEnabled(true);
            IHello hello = (IHello) factory.create(IHello.class, url);
            System.out.println(hello.sayhello("Harry Potter"));
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }

    }
}

客户端项目结构:
这里写图片描述

运行结果

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值