您的位置:首页 > 其它

简单的Hessian接口开发实例

2015-08-04 17:22 561 查看
需要的jar包‍‍ hessian-4.0.7.jar‍‍

#客户端

接口

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