HESSION简介:
Hessian 是由 caucho 提供的一种开源的远程通讯协议。 Hessian 采用二进制 RPC 协议,基于 HTTP 传输,服务器端不用开放防火墙端口。 Hessian 协议的规范是公开的,可以用于任意语言
服务器端:
/**
* @author user
*
*/
public interface IBasic {
/**
* 测试字符串
*
* @return string
*/
public String hello();
/**
* 取一辆汽车 测试对象传递
*
* @return car
*/
public Car getCar();
}
/**
* @author user
*
*/
public class Car implements java.io.Serializable {
/**
* 一定要实现Serializable因为要远程传输
*
*/
private static final long serialVersionUID = 1L;
/**
*
*/
private String color;
/**
*
*/
private String length;
/**
*
*/
private String name;
/**
* @return the color
*/
public String getColor() {
return color;
}
/**
* @param color the color to set
*/
public void setColor(String color) {
this.color = color;
}
/**
* @return the length
*/
public String getLength() {
return length;
}
/**
* @param length the length to set
*/
public void setLength(String length) {
this.length = length;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/*
* toString method
*/
@Override
public String toString() {
StringBuffer sb = new StringBuffer(512);
sb.append("Car[");
sb.append("\n color=").append(this.color);
sb.append("\n length=").append(this.length);
sb.append("\n name=").append(this.name);
sb.append("\n]");
return sb.toString();
}
}
package com.comtop.christ.commcomponent.hessian;
/**
* @author user
*
*/
public class BasicService implements IBasic {
/**
*
*/
private final String hello = "Hello, world";
public String hello() {
return hello;
}
public Car getCar() {
Car car = new Car();
car.setColor("RED红色");
car.setLength("2400");
car.setName("HAHACHE");
return car;
}
}
客户端:
package com.comtop.christ.commcomponent.hessian;
import java.net.MalformedURLException;
import com.caucho.hessian.client.HessianProxyFactory;
/**
* @author user
*
*/
public class test {
/**
* hessian服务器测试类
*
* @param args
*/
public static void main(String[] args) {
String url = "http://10.10.20.101:7070/web/hessian";
HessianProxyFactory factory = new HessianProxyFactory();
try {
IBasic hello = (IBasic) factory.create(IBasic.class, url);
System.out.println(hello.hello());
System.out.println(hello.getCar());
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
配置:
<!-- hession -->
<servlet>
<servlet-name>hessianService</servlet-name>
<servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
<init-param>
<param-name>service-class</param-name>
<param-value>com.comtop.christ.commcomponent.hessian.BasicService</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>hessianService</servlet-name>
<url-pattern>/hessian</url-pattern>
</servlet-mapping>
参考URL:http://blog.csdn.net/zhtang0526/archive/2009/11/09/4788879.aspx
使用包:hession-4.0.7.jar
分享到:
相关推荐
同时,由于Hessian使用二进制格式,相比于基于文本的协议(如SOAP),它在网络传输上的效率更高。 总的来说,Hessian是一种强大的工具,特别适用于需要快速、低开销的Java远程调用场景。通过这个简单的示例,我们...
**独立使用Hessian** 在不依赖任何框架的情况下,使用Hessian的步骤如下: 1. **添加依赖**:首先,客户端和服务端都需要引入Hessian的jar包,以便使用其提供的API和功能。 2. **服务端设置**:在服务端,需要...
在使用Hessian前,需要在项目中引入Hessian的相关依赖。对于Java项目,可以通过Maven或Gradle添加Hessian的jar包。例如,在Maven的pom.xml文件中添加如下依赖: ```xml <groupId>com.caucho</groupId> ...
此例子有两个工程,hessianServer(服务端工程),hessianClient(客户端工程),把 hessianServer工程 启动之后就可以通过 hessianClient 访问 服务端的服务了。
1. **二进制编码**:Hessian使用高效的二进制编码,对数据类型进行压缩,减少了在网络上传输的数据量,从而提高了效率。 2. **简单类型支持**:Hessian支持基本的Java数据类型,如整型、浮点型、字符串、日期等,...
这对于优化自定义序列化逻辑或者解决Hessian使用中遇到的问题非常有帮助。 总结起来,Hessian是一种高效、轻量级的二进制序列化协议,特别适合于跨语言的网络通信。理解并掌握Hessian的基本概念和使用方法,能够...
1. **二进制序列化**:Hessian使用高效的二进制格式进行序列化和反序列化,与XML或JSON相比,这种格式的数据体积更小,网络传输更快。 2. **类型安全**:Hessian支持各种数据类型,包括基本类型、对象、数组和映射...
1. **二进制格式**:Hessian使用紧凑的二进制格式,相比基于文本的协议如XML-RPC或SOAP,数据传输量更小,解析速度更快。 2. **动态类型**:Hessian支持动态类型,这意味着服务端和客户端无需预先定义接口或数据结构...
在这个案例中,提供的"压缩包子文件的文件名称列表"——"hessian使用案例",很可能包含了服务器端和客户端的代码示例。这些示例可能包括了服务器端的服务接口和实现、web.xml配置、客户端的HessianProxyFactory使用...
1. **二进制编码**:与XML或JSON等文本格式相比,Hessian使用二进制编码,占用更少的网络带宽,提高了数据传输速度。 2. **自动类型检测**:Hessian能自动检测和编码各种数据类型,包括基本类型、对象、数组、日期、...
6. **性能优化**:由于Hessian使用二进制编码,相比基于XML的SOAP协议,其传输效率更高。但为了进一步优化性能,我们还可以考虑使用HTTP压缩、连接池等技术。 7. **安全考虑**:在实际应用中,我们需要对Hessian...
- **二进制格式**:Hessian使用高效的二进制格式,而不是文本格式如JSON或XML,这使得数据传输更快,占用带宽更少。 - **跨语言支持**:Hessian不仅支持Java,还支持其他语言如C++,Python等,这使得多语言间的...
- Hessian使用二进制格式传输数据,相比XML-RPC或SOAP,它的传输效率更高,占用带宽更少。 - Hessian支持类型序列化,包括基本类型、对象、数组和集合等,使得跨语言通信成为可能。 4. **源码和工具**: - 在...
1. **二进制格式**:与基于文本的HTTP协议不同,Hessian使用二进制格式传输数据,这使得它在处理大数据量时具有更高的效率和更小的带宽占用。 2. **自动类型转换**:Hessian能够自动识别并转换各种数据类型,如字符...
Hessian使用二进制格式来序列化对象,相比XML或JSON等文本格式,它的传输效率更高,占用的网络带宽更少。这种协议特别适合于需要频繁进行远程通信的微服务架构。 在这个例子中,"service"指的是Hessian服务端,它会...
在这个“hessian学习实例”中,我们将深入探讨Hessian框架的使用,特别是如何将其与Spring框架集成,以及如何构建server端和client端。 首先,让我们理解Hessian的工作原理。Hessian基于HTTP协议,它将Java对象序列...
与XML-RPC相比,Hessian使用二进制编码,因此在网络传输时占用的带宽更少,解析速度更快。此外,Hessian支持Java、C++、Python等多种编程语言,具有良好的跨平台性。对于需要频繁交互且数据量不大的Web服务,Hessian...
1. **二进制格式**:Hessian使用高效的二进制格式,而不是文本格式如XML或JSON,这减少了在网络上传输的数据量,提高了传输速度。 2. **自动类型转换**:Hessian能够自动处理不同语言和平台之间的类型转换,简化了跨...
1. **二进制格式**: Hessian使用二进制格式进行数据序列化和反序列化,与XML或JSON等文本格式相比,其数据体积更小,解析速度更快。 2. **RPC协议**: Hessian基于HTTP协议,提供了一种轻量级的远程调用方式,使得...
1. **二进制序列化**:Hessian使用高效的二进制格式进行序列化和反序列化,与基于文本的序列化协议(如JSON或XML)相比,它能显著减少网络传输的数据量。二进制序列化的优势在于数据紧凑,解析速度快,但同时也降低...