- 浏览: 434997 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (144)
- java (32)
- Flex (11)
- linux (15)
- 思维至上 (2)
- 生活 (4)
- spring2.5.5 (3)
- Design pattern (0)
- jdk1.6 (1)
- erlang (14)
- mysql (5)
- nginx (10)
- 互联网 (1)
- 用户体验 (0)
- jvm (8)
- hibernate (0)
- oracle (0)
- mvn (2)
- 23种常用设计模式详细讲解及实例 (1)
- nosql (1)
- mongodb (2)
- thrift (1)
- 负载均衡 (1)
- Objective-c (1)
- fuck (1)
- resin (3)
- log4j (2)
- android (1)
- jps (0)
- lucene (2)
- rsync (1)
- python (1)
- java性能分析 (1)
- spring (1)
- zookeeper (2)
- error (1)
- 算法 (1)
- hudson (1)
- svn (1)
- maven (1)
- svn server (2)
- swap linux (1)
- 协同过滤 (1)
- 邮件系统 (1)
最新评论
-
cheetah747:
我也遇到这个问题了,不过我是直接把第三方jar放到工程文件的l ...
JAVA NoClassDefFoundError: -
dxm1986:
hillfallshore 写道亲 你这是杜撰的小说吗?完全是 ...
面试有感 -
dxm1986:
mengda1027 写道从实习生到高级java到架构师,是在 ...
面试有感 -
dxm1986:
kljjack 写道一个编程十几年,每年看几十本技术书籍,技术 ...
面试有感 -
dxm1986:
轻指飞扬 写道呵呵,挺好玩的~ 我怎么感觉你招人不是很有诚意嘛 ...
面试有感
前几天,自己偶然看到了一个轻量级远程对像访问,而且使用起来特别容易,方便,于是在这里和大家分享一下。
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 楼
dxm1986
2010-09-06
javafound 写道
你把hessian的通信协议翻译出来,呵呵.
呵呵。找时间翻译一下。我就是看了你那个文章中,提到了Hessian...,然后就弄了一下,哈哈。。。
1 楼
javafound
2010-09-06
你把hessian的通信协议翻译出来,呵呵.
发表评论
-
what the fucking code
2012-04-12 14:08 1212public class MemInfo<T ex ... -
Jps介绍以及解决jps无法查看某个已经启动的java进程问题
2012-03-07 16:41 0Jps介绍以及解决jps无法查看某个已经启 ... -
java.lang.UnsupportedOperationException
2012-02-17 15:01 2142在使用Arrays.asList()后调用add,r ... -
设计模式
2011-10-09 11:05 94623种常用设计模式详细 ... -
JVM调优与监控
2011-09-17 10:57 1693随时记录,方便以后 ... -
A threadpool with limited cache
2011-09-14 10:13 1299As we all know ,we use the ... -
JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jsta
2011-09-10 13:03 1633Java 内存泄露监控工具(一) -- JV ... -
两个shell脚本,希望大家能够用上
2011-09-08 14:46 1114第一个 定时抓取服务器JVM相关信息 #! /bin/s ... -
责任链
2011-09-05 18:26 967其实我一直都不太喜欢去死记硬背那些神马设计模式,但不得不说,你 ... -
jstat的使用方法
2011-08-30 23:30 7692jstat的使用方法 http: ... -
JVM参数配置大全
2011-08-07 09:42 1250JVM参数配置大全[转] 2010-01-14 ... -
JAVA NoClassDefFoundError:
2011-07-24 05:31 49631NoClassDefFoundError: 我 ... -
单实例设计模式
2011-07-15 15:30 806今天讲一下单实例模式 A: public ... -
java关键字:Volatile,Transient,strictfp
2011-06-27 10:04 873Volatile修饰的成员变量 ... -
使用JDK 1.6自带的jvisualvm监控远程服务器中Java程序资源占用情况
2011-05-06 09:36 7740使用JDK 1.6自带的jvisualvm监控远程 ... -
java虚拟机参数设置
2011-05-05 20:07 1155java虚拟机参数设置 收藏 ... -
JAVA性能优化—Sun Hotspot JDK JVM参数设置
2011-05-05 18:31 1299JAVA性能优化—Sun Hotspot JDK JVM参 ... -
[转]JVM内存段分配及启动参数
2011-05-05 17:39 22091. JVM内存段分配及启动参数:J2EE服务器的内 ... -
Jconsole
2011-05-04 15:06 1400Jconsole是JDK自带的一个很好的jvm查看工具 ... -
[转]java.lang.OutOfMemoryError
2011-04-29 16:36 3632http://www.blogjava.net/ld ...
相关推荐
**Hessian:深入理解与应用** Hessian是一种二进制Web服务协议,它由Caucho Technology公司开发,主要用于提供轻量级、高效的远程方法调用(Remote Method Invocation,RMI)服务。Hessian的目标是简化分布式系统...
Hessian是一种高效的二进制序列化协议,常用于实现轻量级的远程过程调用(RPC)。这个案例涉及到了Hessian在Java和Python之间的跨语言通信。以下是对Hessian技术及其应用的详细解释: 1. **Hessian简介**:Hessian...
这个压缩包包含了Hessian的多个版本,分别是Hessian3.1.6、Hessian3.2.1以及Hessian4.0.7。每个版本都有其特定的功能改进和优化,了解这些版本的区别和适用场景对于开发者来说至关重要。 Hessian3.1.6是Hessian的一...
Hessian是一种二进制Web服务协议,由Caucho Technology公司开发,主要用于提供轻量级、高效的远程方法调用(Remote Method Invocation, RMI)机制。它结合了HTTP协议的可扩展性和Java序列化机制的易用性,使得在...
《Hessian应用详解》 Hessian,一种轻量级的二进制协议,因其高效、简单的特点,在分布式服务中被广泛应用。它允许开发者在HTTP上透明地调用远程方法,就像是本地方法调用一样,极大地提高了开发效率和系统性能。...
在图像处理领域,多尺度Hessian滤波器是一种高级的图像增强技术,它主要用于检测图像中的线性结构,特别是对于微弱或者噪声较大的图像特征有很好的识别能力。这个技术是基于数学形态学的Hessian矩阵理论,由V.S. ...
在IT领域,尤其是在医学图像分析中,Hessian矩阵是一个重要的数学工具,用于图像特征检测,特别是在血管分割的应用中。本文将深入探讨标题和描述中提到的"基于Hessian矩阵增强的心血管分割"这一主题。 Hessian矩阵...
- 在实际开发中,我们可能会需要编写一些辅助工具类来处理Hessian的相关操作,例如Hessian2Input和Hessian2Output,它们用于读写Hessian序列化的二进制流。 6. **安全性与优化**: - 虽然Hessian协议效率高,但其...
在IT行业中,Hessian是一种基于二进制协议的RPC(远程过程调用)框架,它使得客户端和服务端之间能够高效地进行数据交换。HessianServer指的是实现Hessian协议的服务端程序,通常用于构建分布式系统,使得不同的应用...
SpringMVC 和 Hessian 是两种在 Java 开发中常见的技术,它们在构建分布式系统时扮演着重要角色。SpringMVC 是 Spring 框架的一部分,主要用于构建 Web 应用的 MVC(模型-视图-控制器)架构。而 Hessian 是一种轻量...
在Spring框架中,Hessian是一种轻量级的远程方法调用(RPC)协议,它能够实现Java对象到字节流的序列化,从而使得服务端的对象可以在客户端直接调用,仿佛对象就在本地一样。Hessian提供了高效的二进制RPC协议,使得...
Hessian的设计目标是为了提供高效、简单的远程调用方式,使得客户端能够像调用本地方法一样调用远程服务。 **独立使用Hessian** 在不依赖任何框架的情况下,使用Hessian的步骤如下: 1. **添加依赖**:首先,...
在这个“hessian服务端 客户端 可运行”的压缩包文件中,很可能包含了一个完整的示例,让我们来详细探讨Hessian在服务端和客户端的实现及其重要性。 首先,我们来理解一下Hessian服务端。在Java中,Hessian服务端...
Hessian是一种二进制协议,它被设计用于提高远程调用的效率,特别是在Java和C++之间进行跨语言通信时。Hessian的目标是提供一种快速、简洁的数据序列化和远程方法调用(RPC)机制。在这个简单的demo中,我们将探讨...
Hessian 协议格式 Hessian 协议是一种轻量级的 remoting on http 工具,使用简单的方法提供了 RMI 的功能。采用的是二进制 RPC 协议,所以它很适合于发送二进制数据。Hessian 主要用作面向对象的消息通信。 ...
在Spring框架中集成Hessian是为了实现远程方法调用(Remote Method Invocation, RMI),这是一种轻量级的序列化协议,可以高效地传输Java对象。Hessian使得服务提供者和服务消费者之间能够通过网络进行快速的数据...
在IT行业中,尤其是在移动开发领域,Hessian是一种广泛使用的二进制协议,它允许远程对象调用(Remote Object Invocation)。本知识点主要关注的是在Android平台上,如何使用Hessian进行异步请求访问,以便提高应用...
《深入理解Hessian框架:以hessian-4.0.33.jar为例》 Hessian是一种高效的二进制RPC(Remote Procedure Call)协议,由Caucho Technology开发,旨在提供轻量级、高效的远程调用服务。在这个专题中,我们将以hessian...
赠送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-...
在这个案例中,我们关注的是Hessian的版本4.0.37,即"hessian4.0.37.jar"。 Hessian4.0.37是Hessian协议的一个稳定版本,提供了对Java应用的支持,使得远程方法调用变得更加简单和快速。这个版本可能包含了一系列的...