简单的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将结果对象进行序列化,传输至调用端。


转载于:https://my.oschina.net/wangsu/blog/487650

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值