`
dxm1986
  • 浏览: 434997 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hessian初认识

    博客分类:
  • java
阅读更多

前几天,自己偶然看到了一个轻量级远程对像访问,而且使用起来特别容易,方便,于是在这里和大家分享一下。

 

Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据

 

下面我用一个Demo把Hessian与Spring结合展示一下。(Spring真的很强大,她从来不和别人竞争,而是去包容别人。。。我以前看到一个关于对Spring的描述)

 

它的基本思想是这样的,在远程将要提供给用户访问的Service,配成一个URL的形式,供用户访问,一个Service对应一个URL,用户运用Hessian的客户端可以很轻松地实现对远程Service的访问。下面让我们进入实现:

 

服务器端:

 

 

public interface BasicAPI {
	
	public void setGreeting(String greeting);
	public String hello();
	public User getUser();
	
} 

public class BasicService implements BasicAPI {

	private String greeting = "Hello, world"; 
	
	public void setGreeting(String greeting){
		this.greeting = greeting;
		System.out.println("set greeting success:"+greeting);
		}
	
	public String hello(){
		return greeting;
		}
	
	public User getUser(){
		return new User("prance", "meshow");
	}
	
} 


public class User implements Serializable{

	
	String userName ="snoopy";
	String password ="showme";
	
	public User(String user, String pwd) { 
		this.userName =user;
		this.password= pwd;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	} 
}
 

 

上面的接口与实现类,就是我们要供用户远程调用的Service类和Java Bean;

 

接下来是spring配置

 

web.xml中加入以下配置

<servlet>
          <!-- spring mvc的控制分发类 -->
		<servlet-name>dispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/remoting-servlet.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>dispatcherServlet</servlet-name>
		<url-pattern>/remote/*</url-pattern>
</servlet-mapping>
 

 

remote-servlet.xml  ---->配置service,供远程访问

 

<bean id="basicAPI" class="app.demo.BasicService"/> 
	<bean name="/hello" class="org.springframework.remoting.caucho.HessianServiceExporter">
		<!--   Hessian服务的实现类 -->    
        <property name="service" >   
             <ref bean="basicAPI" />   
        </property>    
        <!--  Hessian服务的接口,service,servuceUbteface是RemoteExporter的两个属性,
                分别对应着实现类与实现类接口的完整路径,而RemoteExporter是HessianServiceExporter的父类的父类-->    
        <property name="serviceInterface" value="app.demo.BasicAPI"/> 
</bean>
 

 

客户端对service的调用,大家注意了,这里是在一个Main方法中完成的。

 

public static void main(String[] args) throws MalformedURLException {
		
		HessianProxyFactory factory = new HessianProxyFactory();
		String url = "http://localhost:8888/Hessian/remote/hello";//对应着远程Service的访问URL
		BasicAPI basic = (BasicAPI) factory.create(BasicAPI.class,url);//获得远程Service
		basic.setGreeting("hello cyou");
		System.out.println(basic.hello());
		System.out.println(basic.getUser().getUserName());
		System.out.println(basic.getUser().getPassword());
	}
 

 

到这里,Spring接合Hessian的例子就完了。至于Hessian它的具体原理是怎么样的呢?它的实现过程又是如何,你感兴趣吗?如果你的答案是肯定的,为什么不一起研究一下。

 

 

本文原文来自我的个人博客:www.wolfdream.cn/Black.html  欢迎指点。

 

2
2
分享到:
评论
2 楼 dxm1986 2010-09-06  
javafound 写道
你把hessian的通信协议翻译出来,呵呵.

呵呵。找时间翻译一下。我就是看了你那个文章中,提到了Hessian...,然后就弄了一下,哈哈。。。
1 楼 javafound 2010-09-06  
你把hessian的通信协议翻译出来,呵呵.

相关推荐

    Hessian

    **Hessian:深入理解与应用** Hessian是一种二进制Web服务协议,它由Caucho Technology公司开发,主要用于提供轻量级、高效的远程方法调用(Remote Method Invocation,RMI)服务。Hessian的目标是简化分布式系统...

    hessian案例,hessian案例

    Hessian是一种高效的二进制序列化协议,常用于实现轻量级的远程过程调用(RPC)。这个案例涉及到了Hessian在Java和Python之间的跨语言通信。以下是对Hessian技术及其应用的详细解释: 1. **Hessian简介**:Hessian...

    Hessian多个版本打包下载

    这个压缩包包含了Hessian的多个版本,分别是Hessian3.1.6、Hessian3.2.1以及Hessian4.0.7。每个版本都有其特定的功能改进和优化,了解这些版本的区别和适用场景对于开发者来说至关重要。 Hessian3.1.6是Hessian的一...

    hessian

    Hessian是一种二进制Web服务协议,由Caucho Technology公司开发,主要用于提供轻量级、高效的远程方法调用(Remote Method Invocation, RMI)机制。它结合了HTTP协议的可扩展性和Java序列化机制的易用性,使得在...

    Hessian应用

    《Hessian应用详解》 Hessian,一种轻量级的二进制协议,因其高效、简单的特点,在分布式服务中被广泛应用。它允许开发者在HTTP上透明地调用远程方法,就像是本地方法调用一样,极大地提高了开发效率和系统性能。...

    多尺度hessian滤波器图像增强

    在图像处理领域,多尺度Hessian滤波器是一种高级的图像增强技术,它主要用于检测图像中的线性结构,特别是对于微弱或者噪声较大的图像特征有很好的识别能力。这个技术是基于数学形态学的Hessian矩阵理论,由V.S. ...

    基于Hessian矩阵增强的心血管分割_hessian_hessian血管_hessian血管分割_血管分割_Hessian矩阵

    在IT领域,尤其是在医学图像分析中,Hessian矩阵是一个重要的数学工具,用于图像特征检测,特别是在血管分割的应用中。本文将深入探讨标题和描述中提到的"基于Hessian矩阵增强的心血管分割"这一主题。 Hessian矩阵...

    dubbo-hessian协议http请求demo(java)

    - 在实际开发中,我们可能会需要编写一些辅助工具类来处理Hessian的相关操作,例如Hessian2Input和Hessian2Output,它们用于读写Hessian序列化的二进制流。 6. **安全性与优化**: - 虽然Hessian协议效率高,但其...

    hessianServer

    在IT行业中,Hessian是一种基于二进制协议的RPC(远程过程调用)框架,它使得客户端和服务端之间能够高效地进行数据交换。HessianServer指的是实现Hessian协议的服务端程序,通常用于构建分布式系统,使得不同的应用...

    springMVC hessian

    SpringMVC 和 Hessian 是两种在 Java 开发中常见的技术,它们在构建分布式系统时扮演着重要角色。SpringMVC 是 Spring 框架的一部分,主要用于构建 Web 应用的 MVC(模型-视图-控制器)架构。而 Hessian 是一种轻量...

    Hessian的Spring配置

    在Spring框架中,Hessian是一种轻量级的远程方法调用(RPC)协议,它能够实现Java对象到字节流的序列化,从而使得服务端的对象可以在客户端直接调用,仿佛对象就在本地一样。Hessian提供了高效的二进制RPC协议,使得...

    Hessian 使用小结

    Hessian的设计目标是为了提供高效、简单的远程调用方式,使得客户端能够像调用本地方法一样调用远程服务。 **独立使用Hessian** 在不依赖任何框架的情况下,使用Hessian的步骤如下: 1. **添加依赖**:首先,...

    hessian服务端 客户端 可运行

    在这个“hessian服务端 客户端 可运行”的压缩包文件中,很可能包含了一个完整的示例,让我们来详细探讨Hessian在服务端和客户端的实现及其重要性。 首先,我们来理解一下Hessian服务端。在Java中,Hessian服务端...

    Hessian学习简单demo

    Hessian是一种二进制协议,它被设计用于提高远程调用的效率,特别是在Java和C++之间进行跨语言通信时。Hessian的目标是提供一种快速、简洁的数据序列化和远程方法调用(RPC)机制。在这个简单的demo中,我们将探讨...

    Hessian协议格式

    Hessian 协议格式 Hessian 协议是一种轻量级的 remoting on http 工具,使用简单的方法提供了 RMI 的功能。采用的是二进制 RPC 协议,所以它很适合于发送二进制数据。Hessian 主要用作面向对象的消息通信。 ...

    Spring中集成Hessian的问题

    在Spring框架中集成Hessian是为了实现远程方法调用(Remote Method Invocation, RMI),这是一种轻量级的序列化协议,可以高效地传输Java对象。Hessian使得服务提供者和服务消费者之间能够通过网络进行快速的数据...

    Hessian异步请求访问包

    在IT行业中,尤其是在移动开发领域,Hessian是一种广泛使用的二进制协议,它允许远程对象调用(Remote Object Invocation)。本知识点主要关注的是在Android平台上,如何使用Hessian进行异步请求访问,以便提高应用...

    hessian-4.0.33.jar

    《深入理解Hessian框架:以hessian-4.0.33.jar为例》 Hessian是一种高效的二进制RPC(Remote Procedure Call)协议,由Caucho Technology开发,旨在提供轻量级、高效的远程调用服务。在这个专题中,我们将以hessian...

    hessian-4.0.63-API文档-中英对照版.zip

    赠送jar包:hessian-4.0.63.jar; 赠送原API文档:hessian-4.0.63-javadoc.jar; 赠送源代码:hessian-4.0.63-sources.jar; 赠送Maven依赖信息文件:hessian-4.0.63.pom; 包含翻译后的API文档:hessian-4.0.63-...

    hessian4.0.37

    在这个案例中,我们关注的是Hessian的版本4.0.37,即"hessian4.0.37.jar"。 Hessian4.0.37是Hessian协议的一个稳定版本,提供了对Java应用的支持,使得远程方法调用变得更加简单和快速。这个版本可能包含了一系列的...

Global site tag (gtag.js) - Google Analytics