简单的Hessian接口开发实例

  需要的jar包 hessian-4.0.7.jar

#客户端

  1. 接口

package com.test;

public interface Printer {
	
	public String print(String a);
	
	public String say();

}

2.实现该接口

package com.test;

public class PrinterService implements Printer {

	public String print(String a) {
		return a;
	}

	public String say() {
		return "nihao";
	}

}

3.web.xml的配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:javaee="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>
    <servlet-name>aaa</servlet-name>
    <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
    <init-param>
      <javaee:param-name>service-class</javaee:param-name>
      <javaee:param-value>com.test.PrinterService</javaee:param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>aaa</servlet-name>
    <url-pattern>/aaa</url-pattern>
  </servlet-mapping>
</web-app>


#服务端.

 1.测试类

package com.test;

import java.net.MalformedURLException;

import com.caucho.hessian.client.HessianProxyFactory;

public class TestHessian {

	/**
	 * @param args
	 * @throws MalformedURLException 
	 */
	public static void main(String[] args) throws MalformedURLException {
		// TODO Auto-generated method stub
		String url = "http://localhost:7001/H/aaa";
		//创建factory实例
		HessianProxyFactory factory = new HessianProxyFactory();
		//客户端需实现Basic接口
		//利用java反射机制创建Printer类的实例,从而可以获取该实例的方法
		Printer printr = (Printer)factory.create(Printer.class, url);
		System.out.println("Hessian: " + printr.print("123")+printr.say()); 
	} 

}

输出结果:

Hessian: 123nihao


关于Hessian接口:

 Hessian 是一个基于 binary-RPC 实现的远程通讯 library。使用二进制传输数据。Hessian通常通过Web应用来提供服务,通过接口暴露。Servlet和Spring的DispatcherServlet都可以把请求转发给Hessian服务

关于hessian的7个问题:

1、是基于什么协议实现的?

    基于Binary-RPC协议实现。

2、怎么发起请求?

    需通过Hessian本身提供的API来发起请求。

3、怎么 将请求转化为符合协议的格式的?

    Hessian通过其自定义的串行化机制将请求信息进行序列化,产生二进制流。

4、使用什么 传输协议传输?

    Hessian基于Http协议进行传输。

5、响应端基于什么机制来接收请求?

    响应端根据Hessian提供的API来接收请求。

6、怎么将流还原为传输格式的?

    Hessian根据其私有的串行化机制来将请求信息进行反序列化,传递给使用者时已是相应的请求信息对象了。

7、处理完毕后怎么回应?

   处理完毕后直接返回,hessian将结果对象进行序列化,传输至调用端。


你可能感兴趣的:(hessian)