hessian的简单使用

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

      在进行基于Hessian的项目开发时,应当注意一下几点:

Java服务器端必须具备:

■包含Hessian的jar包

■设计一个接口,用来给客户端调用

■实现该接口的功能

■配置web.xml,配置好相应的servlet

■由于使用二进制RPC协议传输数据,对象必须进行序列化,实现Serializable接口

■对于复杂对象可以使用Map的方法传递

Java客户端必须具备:

□Java客户端包含Hessian的jar包

□具有和服务器端结构一样的接口,包括命名空间都最好一样

□利用HessianProxyFactory调用远程接口


Hessian的简单例子


Hessian服务端
第一步:创建Web Project(HessianServer),并将hessian-3.2.1.jar放入WEB-INF/lib文件夹下。
第二步:创建User类,注意:实现Serializable接口

import java.io.Serializable;    
    
public class User implements Serializable{    
    
    private String name;    
    private Integer age;    
    
    public User() {    
        super();    
    }    
        
    public User(String name, Integer age) {    
        super();    
        this.name = name;    
        this.age = age;    
    }    
    
    public String getName() {    
        return name;    
    }    
    public void setName(String name) {    
        this.name = name;    
    }    
    public Integer getAge() {    
        return age;    
    }    
    public void setAge(Integer age) {    
        this.age = age;    
    }    
        
}  
第三步:创建接口IBasicApi

import com.mahc.hessian.domain.User;    
    
public interface IBasicApi {    
    
    /* 设置用户名 */    
    public boolean setUserName(String name);    
        
    /* 获取问候 */    
    public String sayHello();    
        
    /* 获取用户信息 */    
    public User getUser();    
        
}  

第四步:创建实现IBasicApi的BasicService

import com.mahc.hessian.domain.User;    
    
public class BasicService implements IBasicApi{    
    
    private String name;    
        
    @Override    
    public boolean setUserName(String name) {    
        this.name = name;    
        return false;    
    }    
    
    @Override    
    public String sayHello() {    
        return "Hello "+ name+",Welcome to Hessian!";    
    }    
    
    @Override    
    public User getUser() {    
        return new User(name, 23);    
    }    
}
第五步:配置WEB-INF下的web.xml
<!-- Hessian在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.mahc.hessian.BasicService</param-value>    
    </init-param>    
  </servlet>    
  <servlet-mapping>    
    <servlet-name>HessianServlet</servlet-name>    
    <url-pattern>/api/service</url-pattern>    
  </servlet-mapping>    

Hessian客户端
第一步:创建Java Project(HessianClient),并将hessian-3.2.1.jar放入lib文件夹下
 
第二步:创建与服务端一致的com.mahc.hessian.domain.User和com.mahc.hessian.IBasicApi
 
第三步:创建客户端测试

public class ClientTest {    
    
    public static void main(String[] args) throws MalformedURLException {    
            
        String url = "http://localhost:8080/HessianServer/api/service";    
            
        HessianProxyFactory factory = new HessianProxyFactory();    
        IBasicApi api = (IBasicApi) factory.create(IBasicApi.class, url);    
        api.setUserName("mahc");    
        System.out.println(api.sayHello());    
        System.out.println(api.getUser().getName());    
        System.out.println(api.getUser().getAge());    
            
    }    
}    



第四步:部署HessianServer,启动Tomcat,运行ClientTest。查看运行结果。


总结:
在服务端需要配置接口与接口实现类,在web.xml里配置HessianServlet的servlet,并配置初始化参数,name为service-class,value为接口的实现类
在客户端需要配置与服务端相同名字的接口

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值