摘要:Hessian是一个轻量级的remoting
onhttp工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。
hessian类似于Webservice,但是它不使用soap协议,它把协议报文封装到http封包中,通过HTTP信道传输。是一种高效简洁的远程调用框架,它采用的是二进制RPC协议(Binary),具有轻量、传输量小、平台无关的特点,特别适合于目前网络带宽比较小的手机网络应用项目。 Hessian是通过servlet提供远程服务,完全使用动态代理来实现的,推荐采用面向接口编程,因此,Hessian服务建议通过接口暴露。
hessian已经支持Java,Flash/Flex,Python,C++,.NET C#,D,Erlang,PHP,Ruby,Objective C。其中我最喜欢的就是它不需要我们与xml“打交道”,直接操作对象,省去了很多麻烦。
缺点:如果service层中返回的对象是复杂对象,使用它就会削弱Hessian的传输量小的优点,而且也会增加Hessian客户端的代码量。既然它是把对象序列化为二进制流的形式在http信道中传输,那么对于安全性高的应用不应该采用hessian(比如网上支付等)、
官方简介:Hessian 是一个二进制协议,提供web 服务就像创建Servlet一样简单. 使用服务就像使用JDK代理接口一样简单,下面就看一下程序例子。
一:首先看一下程序截图:
二:服务端:
1.接口:
package com.micai.hessian.server;
public interface Basic {
public String hello();
}
2.实现类:
package com.micai.hessian.server;
public class BaseService implements Basic {
private String greetings = "Hello, hessian!";
public void setGreetings(String greetings) {
this.greetings = greetings;
}
public String hello() {
return greetings;
}
}
3.web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>Hessian</display-name>
<servlet>
<servlet-name>ducklyl</servlet-name>
<servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
<init-param>
<param-name>home-class</param-name>
<param-value>com.micai.hessian.server.BaseService</param-value>
</init-param>
<init-param>
<param-name>home-api</param-name>
<param-value>com.micai.hessian.server.Basic</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ducklyl</servlet-name>
<url-pattern>/ducklyl</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
三:客户端:
1.测试类:
package com.micai.hessian.client;
import com.caucho.hessian.client.HessianProxyFactory;
import com.micai.hessian.server.Basic;
public class BasicClient {
public static void main(String[] args) throws Exception {
String url = "http://localhost:8080/Hessian/ducklyl";
//创建factory实例
HessianProxyFactory factory = new HessianProxyFactory();
//客户端需实现Basic接口
Basic basic = (Basic) factory.create(Basic.class, url);
System.out.println("Hessian: " + basic.hello());
}
}
四:输出的结果如下图:
这样使用Hessian实现的简单远程接口调用就完成了,是不是很简单呢,赶快来试一下吧!
附上源代码下载地址:http://download.csdn.net/detail/sxdtzhaoxinguo/9182975
分享到:
相关推荐
Hessian Binary Web Service Protocol远程接口调用入门Demo例子!
用spirng和hessian构建分布式应用(远程接口)的方法
一个简单实用的hessian框架的应用实例,用于实现分布式开发远程调用!
java项目中使用hessian框架实现远程调用,该资源内附hessian服务端,hessian客户端和使用说明文档,以供使用参考,轻松教会你hessian远程调用!
在开发过程中,有时需公用某个工程的接口,需要用到hessian实现远程调用
基于加密技术的Hessian 远程调用的研究与实现
Hessian远程调用框架学习一,第一个JAVA使用hessian的入门demo,简单实用易理解
Chapter 9 - Hessian Binary Web Service Protocol Chapter 10 - Parsing Chapter 11 - Database Connectivity Chapter 12 - Debugging and Logging Chapter 13 - Security Chapter 14 - Page Caching ...
使用hessian进行web与android的通讯,相关jar包都有,导入运行即可。有问题博客留言。http://blog.csdn.net/tan313/article/details/49536891
纯Hessian的入门例子教程,还有Hessian和Spring整合的例子教程。 代码上传之前都运行通过的
android端使用hessian跟web服务器通讯,导入即可运行,有问题请在博客留言。http://blog.csdn.net/tan313/article/details/49536891
给予spring的框架。 封装了xfire、rmi、hessian、httpinvoker 客户端可以统一调用,省略了远程调用的编码。 服务通过服务ID和服务接口来调用。
远程方法调用的比较,Hessian方法的介绍和相关配置.Hessian是一个轻量级的remoting on http工具,采用的是Binary RPC协议,所以它很适合于发送二进制数据,同时又具有防火墙穿透能力。Hessian一般是通过Web应用来提供...
这是一个Hessian入门学习的实例,程序包是一个web工程,使用intellij idea + Maven开发,其中通过两个方式展示了使用Hessian实现RMI的原理,一个是访问jsp页面,一个是在代码中手工创建client。对于Hessian Servlet...
使用hessian进行web与android端的通讯,导入可以直接运行,有问题请在博客留言。http://blog.csdn.net/tan313/article/details/49536891
Hessian(binary-RPC)相关Jar包资源
这个hessian例子,包括一个service,一个client,大家只需要启动tomcat,并运行BasicClient这个类,即可
用LR对hessian接口做性能测试,使用JAVA协议,没有界面的性能测试
hessian简单demo,server发布服务+client调用服务,包含源码和hessian的jar包
本文给出了一个java语言作为客户端,hessianphp语言写得web service的示例代码,和详细的说明。