hessian的简单使用

来源:互联网 发布:怎么在淘宝办理学生证 编辑:程序博客网 时间:2024/06/02 04:07

   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为接口的实现类
在客户端需要配置与服务端相同名字的接口

原创粉丝点击