1.简介
Hessian是一个轻量级的remoting on http工具,通过简单的方法提供了RMI的功能。 与WebService相比较而言,Hessian更简单、快捷。
Hessian采用的是二进制的RPC协议,正是因为它采用的是二进制协议,所以它很适合于发送二进制数据。
2.实例讲解
服务端:
a.下载hessian.jar,链接地址:http://hessian.caucho.com/#Java,选择所需要的版本。
b.在开发服务端的时候是web工程。
c.代码实现如下:
public interface MyHessianInterface { public void say(String str); public String hello(); public PeopleInfo getUser(); }
public class MyHessian implements MyHessianInterface { private String str = "Hello Hessian" ; @Override public void say(String str) { this.str = str ; System.out.println("setting say success: " + str); } @Override public String hello() { return str; } @Override public PeopleInfo getUser() { return new PeopleInfo("Apple","apple@1234"); } }
public class PeopleInfo implements Serializable { private static final long serialVersionUID = -1938252045479387918L; private String people_name = "Hessian" ; private String people_password = "hessian@1234"; public PeopleInfo(String people_name,String people_password){ this.people_name = people_name ; this.people_password = people_password; } public String getPeopleName(){ return people_name ; } public String getPeoplePassword(){ return people_password ; } }
d.web.xml配置文件如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <servlet> <servlet-name>hessian</servlet-name> <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class> <init-param> <param-name>service-class</param-name> <param-value>com.zh.hessian.MyHessian</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>hessian</servlet-name> <url-pattern>/hessian</url-pattern> </servlet-mapping> </web-app>
客户端:
a.必须加载hessian.jar
b.在开发客户端的时候是Java工程
c.代码实现:
public interface HessianClientInteface { public void say(String str); public String hello(); public PeopleInfo getUser(); }
public class PeopleInfo implements Serializable { private static final long serialVersionUID = 8268991521882061845L; private String people_name = "hello hessian" ; private String people_password = "hello hessian@1234" ; public PeopleInfo(String people_name,String people_password){ this.people_name = people_name ; this.people_password = people_password ; } public String getPeopleName(){ return people_name ; } public String getPeoplePassword(){ return people_password ; } }
public class MyHessianClient { public static void main(String[] args) throws Exception{ String url = "http://127.0.0.1:8080/JavaDemo/hessian" ; HessianProxyFactory factory = new HessianProxyFactory(); HessianClientInteface hc = (HessianClientInteface)factory.create(HessianClientInteface.class,url); System.out.println("hello: " + hc.hello()); System.out.println("name: " + hc.getUser().getPeopleName()); System.out.println("password: " + hc.getUser().getPeoplePassword()); hc.say("sssss"); System.out.println("say: " + hc.hello()); } }
3.测试结果
先启动tomcat服务,然后在运行客户端的程序,最后在控制台查看结果。例如,示例上所示,最后的结果如下:
Client:
hello: Hello Hessian
name: Apple
password: apple@1234
say: sssss
Server:
setting say success: sssss
相关推荐
这篇学习笔记将深入探讨这两个技术,并通过实例代码解析它们的工作原理。 Flex是Adobe开发的一个开源框架,主要用于创建交互式、高性能的RIA,通常基于ActionScript编程语言和Flash Player或Adobe AIR运行时。Flex ...
Hessian学习笔记 Hessian是一种基于Binary-RPC协议实现的远程通讯library,由Caucho提供。下面是Hessian的学习笔记: 一、简介 Hessian是基于Binary-RPC协议实现的远程通讯library,用于实现远程过程调用(RPC)...
下面我们将深入探讨Hessian的学习、实例以及其在实际应用中的使用。 首先,Hessian的吸引力在于它的二进制格式,这使得数据在网络上传输时占用更少的带宽。相比于XML或JSON等文本格式,二进制格式的数据通常更小,...
**WebService的轻量级实现——Hessian学习笔记** 在IT行业中,WebService作为一种常见的跨平台、跨语言的通信机制,被广泛应用于系统间的交互。然而,传统的SOAP(Simple Object Access Protocol)协议实现的...
4. **Hessian客户端和服务器实现**:理解如何在Java或其他支持的语言中实现Hessian客户端和服务端是学习的关键。这包括创建服务端的HessianServlet,以及客户端的HessianProxyFactory,用于创建远程服务的代理对象。...
在这个“hessian学习实例”中,我们将深入探讨Hessian框架的使用,特别是如何将其与Spring框架集成,以及如何构建server端和client端。 首先,让我们理解Hessian的工作原理。Hessian基于HTTP协议,它将Java对象序列...
这是一个Hessian入门学习的实例,程序包是一个web工程,使用intellij idea + Maven开发,其中通过两个方式展示了使用Hessian实现RMI的原理,一个是访问jsp页面,一个是在代码中手工创建client。对于Hessian Servlet...
通过学习Hessian,我们可以更有效地处理数据传输,提高应用性能。 首先,让我们理解什么是序列化。序列化是将对象的状态转换为可存储或可传输的形式的过程。在Java中,如果一个类实现了Serializable接口,那么该类...
标题提及的“Hessian实例下载”意味着这个压缩包包含了使用Hessian协议的示例代码和必要的库文件,方便开发者快速理解和学习如何在自己的项目中集成Hessian。描述中提到的网站地址是Hessian的官方主页,该页面提供了...
Hessian是一种二进制协议,它被设计用于提高远程调用的...通过学习和实践这个Hessian demo,你将能够更好地应对涉及远程调用和数据交换的问题。无论是Java开发者还是C++开发者,Hessian都是值得了解和掌握的一项技术。
Flex + Hessian 学习笔记(一) http://wangcheng.javaeye.com/blog/141382 Flex + Hessian 学习笔记(二) http://wangcheng.javaeye.com/blog/141539 Flex + Hessian 学习笔记(三) ...
Hessian工程实例主要涉及到的是Java服务端与客户端之间的高效远程通信技术。Hessian是由Caucho Technology开发的一种二进制RPC(Remote Procedure Call)协议,它允许Java对象以高效的二进制格式在网络间进行传输,...
学习这个实例,你将了解到如何设置Hessian服务,配置Flex客户端连接,以及如何处理数据传输。这有助于你在构建分布式系统时,利用Flex和Java的优势,提供高性能、低延迟的跨平台通信解决方案。通过实践这些步骤,你...
在“hessian简单实例”中,我们有两个关键部分:`hessian-server`和`hessian-client`。`hessian-server`是服务端程序,它实现了我们需要暴露给客户端调用的方法;而`hessian-client`则是客户端程序,它负责连接到...
总的来说,Flex中的Hessian实例涉及到了客户端与服务器之间的高效通信、ActionScript与Java的互操作、数据传输优化,以及图表组件的使用等多个方面,是Flex开发中的重要技能。深入理解和实践这些知识点,将有助于...
3. 在客户端,我们需要创建一个HessianProxyFactory实例来获取服务的代理对象,然后就可以调用远程方法了: ```java import com.caucho.hessian.client.HessianProxyFactory; public class Client { public ...
这个实例教程对于新手来说,是一个很好的起点,能够帮助你快速理解和实践Hessian的基本用法。在实际项目中,你还可以根据需要对安全性、性能等方面进行优化,比如添加认证机制、调整序列化策略等。
这里我们提供了一个使用Hessian 4.0.37的简单实例,包括服务器端和客户端的创建。 #### 服务器端(Server) 首先,定义一个服务接口和其实现: ```java public interface HelloWorldService { String sayHello...