Hessian入门

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 {

	@Override
	public String sayHello(String username) {
		System.out.println("sayHello 方法被调用!");
		return "Hello " + username + ", Welcome to Spring Hessian World";
	}

	@Override
	public User getUser() {
		System.out.println("getUser 方法被调用!");
		return new User(1, "张三", "123456");
	}

	@Override
	public 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 {

	@Test
	public 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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值