Hessian入门

来源:互联网 发布:ubuntu tty u盘 编辑:程序博客网 时间:2024/06/08 02:05

Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。

随着现在互联网系统越来越复杂,异构信息系统之间信息交互变得非常重要,而WebService使用起来又比较麻烦,Hessian相对使用起来比较简单,下面我们来简单说一下如何使用Hessian来搭建异构信息系统之间数据交互。

Hessian实现WebService基本上需要如下几个步骤:

一、创建Web项目

二、创建Service接口

三、实现Service

四、配置web.xml

五、实现Client

上面一~四步是服务端操作过程,第五步是服务端实现过程。

(Hessian官网也有入门的例子,有兴趣的朋友也可以看一下。http://hessian.caucho.com/doc/hessian-overview.xtp)。建议朋友们如果可能的话尽可能去看一下官网上的demo,本人也是基于官网上的例子来写的,阅读官网上的demo一方面可以提高自己学习的能力,另一方面也可以提升一下英语阅读水平,一举两得,何乐而不为。如果你不想看英文的话,那就勉为其难看看我写的吧,同样是刚学习Hessian,有不足之处欢迎大家指正。

 

废话不多说,下面进入正题:

一、创建Web项目

这里我使用的是Maven进行项目构建的(建议没有使用过Maven的朋友有时间学习一下Maven,对自己软件开发有莫大的帮助)。然后引入Hessian的依赖包(如果是普通Web项目的话请到官网去下载相应的jar包,然后引入项目里面)

<dependency><groupId>com.caucho</groupId><artifactId>hessian</artifactId><version>4.0.7</version></dependency>

这里我们用的是4.0.7这个版本的Hessian。

二、建立Service接口

接下来我们建立一个普通的用户服务接口。

/** * 用户信息服务 */package com.mhy.hessian.service;import java.util.List;import com.mhy.domain.User;/** * @author mhy2011@gmail.com * @date 2013年9月29日 */public interface UserService {String sayHello(String username);User getUser();List<User> getUsers();}

 

三、实现Service接口

/** * 用户信息服务实现类 */package com.mhy.hessian.service.impl;import java.util.ArrayList;import java.util.List;import com.mhy.domain.User;import com.mhy.hessian.service.UserService;/** * @author mhy2011@gmail.com * @date 2013年9月29日 */public class UserServiceImpl implements UserService {@Overridepublic String sayHello(String username) {System.out.println("sayHello 方法被调用!");return "Hello " + username + ", Welcome to Spring Hessian World";}@Overridepublic User getUser() {System.out.println("getUser 方法被调用!");return new User(1, "张三", "123456");}@Overridepublic List<User> getUsers() {System.out.println("getUsers 方法被调用!");List<User> users = new ArrayList<User>();users.add(new User(1, "张三", "123456"));users.add(new User(2, "李四", "111111"));users.add(new User(3, "王五", "654321"));return users;}}

在上面的类里面我们实现了接口的三个方法,为了方便起见不再与数据库进行交互,原理是一样的。


四、配置web.xml

接下来我们配置Server端的web.xml配置文件,用以标记上面的User服务的访问地址

<servlet><servlet-name>userService</servlet-name><servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class><init-param><param-name>home-class</param-name><param-value>com.mhy.hessian.service.impl.UserServiceImpl</param-value></init-param><init-param><param-name>home-api</param-name><param-value>com.mhy.hessian.service.UserService</param-value></init-param></servlet><servlet-mapping><servlet-name>userService</servlet-name><url-pattern>/userService</url-pattern></servlet-mapping>

上面的servlet就是我们针对User服务提供的访问地址。如果要提供多个服务给第三方client的话,可以建立多个servlet。
 

五、实现Client

Hessian创建客户端也非常简单,第一步是创建HessianProxyFactory;第二步是获取服务;第三步是调用服务所提供的方法。

/** * Hessian 客户端测试程序 */package com.mhy.client;import java.net.MalformedURLException;import java.util.List;import org.junit.Test;import com.caucho.hessian.client.HessianProxyFactory;import com.mhy.domain.User;import com.mhy.hessian.service.UserService;/** * @author mhy2011@gmail.com * @date 2013年9月29日 */public class HessianClientTest {@Testpublic void testUserService(){String url = "http://localhost:8080/userService";//hessian服务地址HessianProxyFactory factory = new HessianProxyFactory();try {//创建服务UserService service = (UserService) factory.create(UserService.class, url);System.out.println(service.sayHello("张三"));//调用sayHello方法System.out.println("------------------------");System.out.println(service.getUser());//调用getUser方法System.out.println("------------------------");List<User> users = service.getUsers();if(null != users && users.size() > 0){for(User u : users){System.out.println(u);}}} catch (MalformedURLException e) {e.printStackTrace();}}}


 到此为止,一个简单的基于Hessian的服务就搭建好了。下面我们来进行测试一下

首先启动web应用程序,然后运行测试类

client端输出信息如下:

Server端输出信息如下:

没有问题,得到的结果正是我们想要的。Hessian入门就是这么简单。

 本示例源程序下载地址:

http://download.csdn.net/detail/u010397369/6609629

原创粉丝点击