摘要: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二进制Web服务协议(Hessian Binary Web Service Protocol)是一种高效的、轻量级的远程过程调用(RPC)协议,它主要用于提高Web服务之间的通信效率。Hessian由Caucho Technology公司开发,旨在解决XML-RPC在...
用Spring和Hessian构建分布式应用(远程接口)的方法 本文主要讲解了如何使用Spring和Hessian构建分布式应用中...我们使用 Spring 和 Hessian 构建了一个分布式应用中的远程接口,提供了一个完整的远程服务调用过程。
Hessian是BEA Systems开发的一种二进制Web服务协议,它提供了序列化和远程方法调用的机制。在Java项目中,Hessian被广泛用于服务间的通信,尤其是对于那些需要快速、低开销的通信场景。 1. **Hessian服务端**: - ...
2. 使用工厂生成服务接口的代理对象,这个对象可以像调用本地方法一样调用远程服务。 3. 执行远程调用,结果会自动反序列化为Java对象。 四、Hessian与其他远程调用框架的比较: 1. **RMI**:Java原生的RMI使用...
在IT行业中,远程调用是一种常见的技术,使得客户端可以跨网络调用远程服务器上的方法,就像调用本地方法一样方便。Hessian是Apache项目下的一个轻量级的RPC(Remote Procedure Call,远程过程调用)框架,它提供了...
1. 调用远程方法:在Android客户端,你可以像调用本地方法一样调用远程服务的方法,Hessian库会自动处理网络通信和序列化细节。 ```java String result = service.remoteMethod("参数"); ``` 2. 处理结果:服务器...
Hessian是由Caucho Technology开发的一种二进制Web服务协议,它提供了对Java对象序列化和反序列化的支持,使得远程调用如同本地调用一样快速和简单。与传统的XML-RPC或SOAP相比,Hessian的序列化格式更为紧凑,因此...
在服务器端,通过HessianServlet来暴露这个服务,客户端则通过HessianProxyFactory来创建服务代理,从而能够调用远程服务的方法。这种简单设置可以让开发者快速理解Hessian的基本工作原理。 二、Hessian与Spring...
在客户端,我们可以使用HessianProxyFactory来创建对服务端的代理对象,就像调用本地方法一样调用远程服务: ```java HessianProxyFactory factory = new HessianProxyFactory(); HelloService helloService = ...
标题 "外部接口调用 使用spring4+hessian4实例" 提供了一个关于如何使用Spring4框架与Hessian4库实现远程服务调用的具体实践。在这个场景中,Hessian4被用作一个轻量级的RPC(远程过程调用)协议,它允许应用程序在...
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 ...
HessianServlet会自动处理序列化和反序列化的过程,使得客户端可以像调用本地方法一样调用远程服务。 例如,你可以创建一个名为`MyService`的类,其中包含一个方法`doSomething()`。然后在Tomcat的web.xml配置文件...
在本示例中,"ExampleImp.java"和"Example.java"代表Java端的服务接口和服务实现,而"Test.java"是客户端代码,用于调用Web服务。 为了在Java中使用Hessian,我们首先需要引入Hessian库。"hessian-3_2-snap.jar...
Hessian是一种二进制的远程过程调用(RPC)协议,它旨在提供高效的、轻量级的服务交互方式,特别是在Java和.NET之间。Hessian在处理Web服务时,能够减少网络传输的数据量,提高服务调用的性能。 描述中提到的“NULL...
2. **Hessian Service**:服务端需要实现Hessian服务,通常会将业务逻辑封装在接口中,然后通过HessianServlet暴露这些接口,使得客户端可以通过HTTP请求访问。 3. **Hessian Serializer**:负责对象的序列化和反...
3. **客户端消费Hessian服务:** 在客户端,使用HessianProxyFactory或HessianClient来创建服务代理,这样就可以像调用本地方法一样调用远程服务。例如: ```java HessianProxyFactory factory = new ...
在本文中,我们将深入探讨如何使用Spring4框架与Hessian4库进行远程服务调用,即所谓的外部接口调用。这种技术允许不同应用程序之间通过网络高效地交换数据和执行服务,尤其是在分布式系统中非常常见。 首先,让...
Spring会自动创建代理对象,使得客户端可以通过这个代理对象调用远程服务的方法,就像调用本地对象一样。 3. **使用源码分析**: Hessian库提供了`HessianProxyFactoryBean`和`HessianServiceExporter`这两个关键...