- 浏览: 7331359 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
在开发WebService和学习Spring时候,使用Spring和Hessian开发webService,有Spring的代理 HessianServiceExporter 将服务端的服务和实现的接口暴露给客户端,让客户端采用Http协议通过代理的HessianProxyFactoryBean访问。 如果在没有采用Spring整合的时候我们需要自己使用Hessian开发自己的远程过程调用。好了,下面开始展示采用Hessian方式开发远程过程调用开发过程。。O(∩_∩)O哈哈~
Hessian的简单 介绍:
Hessian是由caucho提供的一个基于binary-RPC实现的远程通讯library。
1、是基于什么协议实现的?
基于Binary-RPC协议实现。
2、怎么发起请求?
需通过Hessian本身提供的API来发起请求。
3、怎么将请求转化为符合协议的格式的?
Hessian通过其自定义的串行化机制将请求信息进行序列化,产生二进制流。
4、使用什么传输协议传输?
Hessian基于Http协议进行传输。
5、响应端基于什么机制来接收请求?
响应端根据Hessian提供的API来接收请求。
6、怎么将流还原为传输格式的?
Hessian根据其私有的串行化机制来将请求信息进行反序列化,传递给使用者时已是相应的请求信息对象了。
7、处理完毕后怎么回应?
处理完毕后直接返回,hessian将结果对象进行序列化,传输至调用端。
声明一个远程过程调用的服务如下:
很简单的一个POJO的接口
package com.easyway.caucho.hessian.ws; import java.util.List; /** * 声明服务端相关的服务 * @author longgangbai * */ public interface IHessianService { public String getUserName(); public List<String> getList(); public void setGreeting(String greeting); public String hello(); }
远程过程调用的服务的实现如下:
其实很简单只需要实现一个简单的类继承HessianServlet实现相关的服务接口。
package com.easyway.caucho.hessian.ws; import java.util.ArrayList; import java.util.List; import com.caucho.hessian.server.HessianServlet; /** * * 在Hessian中服务端的必须继承HessianServlet类同时实现相关的服务的接口 * * @author longgangbai * */ public class HessianWS extends HessianServlet implements IHessianService{ private String _greeting = "Hello, world"; /** * */ public void setGreeting(String greeting) { _greeting = greeting; } /** * */ public String hello() { return _greeting; } /** * */ public List<String> getList() { List<String> strList=new ArrayList<String>(); strList.add("a"); strList.add("c"); strList.add("b"); strList.add("d"); strList.add("e"); strList.add("g"); strList.add("h"); strList.add("j"); strList.add("k"); strList.add("l"); strList.add("q"); return strList; } /** * */ public String getUserName() { return _greeting; } }
客户端调用过程:
如下:
package com.easyway.caucho.hessian.ws; import java.net.MalformedURLException; import com.caucho.hessian.client.HessianProxyFactory; /** * Hessian客户端测试代码 * @author longgangbai * */ public class HessianServiceWSClient { public static void main(String[] args) { String url = "http://localhost:8080/BurlapWS/remoting/hessianWs"; HessianProxyFactory factory = new HessianProxyFactory(); IHessianService basic; try { basic = (IHessianService) factory.create(IHessianService.class, url); System.out.println("hello(): " + basic.getUserName()); System.out.println("getList(): " + basic.getUserName()); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
备注:HessianServlet是一个Servlet,实现Servlet相关的协议和类,所以需要在Web.xml配置如下:
一下摘自源代码:
public class HessianServlet extends GenericServlet { private Logger _log = Logger.getLogger(HessianServlet.class.getName()); private Class _homeAPI; private Object _homeImpl; private Class _objectAPI; private Object _objectImpl; private HessianSkeleton _homeSkeleton; private HessianSkeleton _objectSkeleton; private SerializerFactory _serializerFactory;
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"> <servlet> <servlet-name>hessianWs</servlet-name> <servlet-class>com.easyway.caucho.hessian.ws.HessianWS</servlet-class> </servlet> <servlet-mapping> <servlet-name>hessianWs</servlet-name> <url-pattern>/remoting/hessianWs</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
- BurlapWS.rar (677.3 KB)
- 下载次数: 62
- hessian-4.0.7-src.jar (367.9 KB)
- 下载次数: 36
- hessian-4.0.7.jar (375.3 KB)
- 下载次数: 55
发表评论
-
【转】Django resources
2014-01-23 14:35 10805Django resources This page li ... -
使用国内镜像源来加速python pypi包的安装
2014-01-16 11:16 197804pipy国内镜像目前有: http://pypi.d ... -
[转 ]vagrant使用简介
2014-01-10 13:53 257311> 简介: vagrant提供了易于配置,重复性 ... -
[转]在Java中调用Python
2014-01-07 13:08 9211在执行之前都需要把jython对应的包加载进去,这个是必须的 ... -
[转]Eclipse配置PyDev插件
2014-01-02 14:25 2834安装python解释器 安装PyDev: 首 ... -
RestFuse的研究(五) Http请求的封装
2014-06-14 15:50 3625在RestFuse中封装了Http请 ... -
RestFuse的研究(四) Junit的Statement的分析
2013-12-06 11:46 1667在RestFuse提供了多种单 ... -
RestFuse的研究(三) Junit的Rule的使用和分析
2013-12-06 11:01 2234在junit中定义一些可以公用的规则(R ... -
RestFuse的研究(二) Junit的Runner的分类和模式
2013-12-06 10:40 1599在Junit4中的调用JunitCore可以采 ... -
RestFuse的研究(一) HttpJunitRunner的实现
2013-12-06 10:11 1743在RestFuse是一种针对Rest We ... -
[转]An open-source JUnit extension to test HTTP/REST APIs
2013-12-06 09:57 1099http://developer.eclipsesource ... -
TestNG简单的学习(十三)TestNG中Junit的实现
2013-12-04 09:00 3353TestNG和junit的整合 ... -
TestNG简单的学习(十二)TestNG运行
2013-12-03 09:08 51575文档来自官方地址: ... -
TestNG简单的学习(十一)TestNG学习总结
2013-12-03 09:08 14176最近一直在学习关于TestNG方面的知识,根 ... -
TestNG简单的学习(十)TestNG @Listeners 的使用
2013-12-03 09:07 8688TestNG官方网站: http://testng.or ... -
TestNG简单的学习(九)TestNG Method Interceptors 的使用
2013-12-03 09:07 2711TestNG官方网站: http://testng ... -
TestNG简单的学习(八)TestNG Annotation Transformers 的使用
2013-12-03 09:07 2805TestNG官方网站: http://testng.or ... -
TestNG简单的学习(七)TestNG编程方式运行
2013-12-02 09:22 2450TestNG官方网站: http://testng.or ... -
TestNG简单的学习(六)测试工厂注释的使用
2013-12-02 09:22 2779TestNG官方网站: http://testng.or ... -
TestNG简单的学习(五)参数化测试数据的定制
2013-12-02 09:22 2698TestNG官方网站: http://testng.or ...
相关推荐
Hessian是一种二进制Web服务协议,由Caucho公司开发。它提供了一种高效的RPC(Remote Procedure Call)机制,允许Java对象在HTTP上进行远程调用,其优点在于传输速度快、序列化效率高。Hessian支持多种语言,包括...
总结,Hessian作为WebService的轻量级实现,为开发者提供了一种高效、简洁的远程调用方式。理解并掌握Hessian的使用,能够帮助我们构建更加高效、灵活的分布式系统。通过深入学习和实践,我们可以充分利用Hessian的...
而Hessian则是WebService的一种轻量级二进制协议,它提供了一种高效的序列化方式,使得远程调用变得更加简单快捷。本教程将深入讲解如何使用Hessian实现基于WebService的应用。 【描述】提供的教程包含了服务器端和...
hessian.jar 轻量级webservice实现 hessian.jar 轻量级webservice实现 hessian.jar 轻量级webservice实现
Hessian是一种二进制RPC协议,由Caucho公司开发。它提供了高效的远程调用能力,相比基于文本的协议(如SOAP),Hessian能更节省带宽和提高通信效率。Hessian库可以在不同平台上使用,支持多种编程语言,简化了跨语言...
总结,Hessian在Web服务开发中提供了一种高效、轻量级的选择。尽管它不如SOAP那样标准,但其简单性和性能优势使得它在许多实际项目中受到青睐。理解和掌握Hessian的原理与使用,能够提升我们在分布式系统开发中的...
标题中的“不同于Web服务的移动开发”提示我们讨论的主题是移动应用开发的一种替代方式,而描述中的“Hessian是好东西,应用面广,前景应该不错”则将焦点指向了Hessian这种技术。Hessian是一种二进制的远程方法调用...
Hessian是一种二进制Web服务协议,它由Caucho Technology公司开发,主要用于提供轻量级、高效的远程方法调用(Remote Method Invocation,RMI)服务。Hessian的目标是简化分布式系统之间的通信,通过减少网络传输的...
总结,Hessian协议提供了一种高效、跨语言的RPC解决方案,尤其适合Java和Python之间的通信。通过使用Hessian,开发者可以轻松地构建分布式系统,实现服务之间的便捷调用。案例中的文件提供了不同角度的分析和实践...
一、Hessian 请求报文结构 Hessian 请求报文结构主要由四部分组成:魔数字、消息头、方法名、参数列表。 1. 魔数字:magic number,用于标识 Hessian 协议,固定为 "Hessian" 的 ASCII 码。 2. 消息头:header,...
Hessian是一种二进制Web服务协议,由Caucho Technology公司开发,主要用于提供轻量级、高效的远程方法调用(Remote Method Invocation, RMI)机制。它结合了HTTP协议的可扩展性和Java序列化机制的易用性,使得在...
Hessian,一种轻量级的二进制协议,因其高效、简单的特点,在分布式服务中被广泛应用。它允许开发者在HTTP上透明地调用远程方法,就像是本地方法调用一样,极大地提高了开发效率和系统性能。本文将深入探讨Hessian的...
总结起来,Hessian矩阵在心血管分割中的应用是一种有效的图像分析技术,它可以准确检测和追踪图像中的血管结构。通过理解和应用Hessian矩阵,可以开发出高效、精确的自动分割算法,这对医学图像分析领域具有重大意义...
Hessian协议因其高效的二进制序列化和简单易用的特性,在Java开发中广泛应用于构建轻量级的分布式服务。通过以上示例,我们可以看到如何在实际项目中快速集成和使用Hessian进行服务调用。了解并掌握Hessian,能帮助...
Hessian 是一种二进制的 RPC 协议,由 Caucho 公司开发,其特点是小巧、快速、无状态。Hessian 支持 Java、C++、Python 等多种语言,使得跨语言的服务调用成为可能。Hessian 的优点在于它能够自动序列化和反序列化...
- 在实际开发中,我们可能会需要编写一些辅助工具类来处理Hessian的相关操作,例如Hessian2Input和Hessian2Output,它们用于读写Hessian序列化的二进制流。 6. **安全性与优化**: - 虽然Hessian协议效率高,但其...
远程方法调用的比较,Hessian方法的介绍和相关配置.Hessian是一个轻量级的remoting on http工具,采用的是Binary RPC协议,所以它很适合于发送二进制数据,同时又具有防火墙穿透能力。Hessian一般是通过Web应用来提供...
ActionScript中,我们可以使用Flash Player的HTTPService或WebService类来实现Hessian调用,通过配置URL和方法名来连接到Hessian服务。 接着,我们来看看Java端。在Java服务器上,我们需要一个Hessian服务提供者,...
Hessian是Adobe公司开发的一种高效的二进制Web服务协议。它将数据序列化为紧凑的字节流,比XML更加节省带宽和CPU资源,提高了网络通信的效率。Hessian支持多种类型的数据,包括基本类型、对象、数组、日期和自定义...