`

Hessian

阅读更多

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

Hessian 介绍

注意事项

  在进行基于Hessian的项目开发时,应当注意以下几点:
  ▲JAVA服务器端必须具备以下几点:
  ·包含Hessian的jar包
  ·设计一个接口,用来给客户端调用
  ·实现该接口的功能
  ·配置web.xml,配好相应的servlet
  ·对象必须实现Serializable 接口
  ·对于复杂对像可以使用Map的方法传递
  ▲客户端必须具备以下几点:
  ·java客户端包含Hessian.jar的包。C#中引用hessianCSharp.dll
  ·具有和服务器端结构一样的接口。包括命名空间都最好一样
  ·利用HessianProxyFactory调用远程接口。
  简单JAVA客户端例子:

服务器端

  新建一个名EasyHession的webProject项目,将Hessian.jar放入web-inf下的lib中
  创建接口:
  
packageapp.demo; 
  public interface BasicAPI { 
  public void setGreeting(String greeting); 
  public String hello(); 
  public User getUser(); 
  } 

 

 

  实现接口:
 
 packageapp.demo; 
  publicclass BasicService implements BasicAPI { 
  privateString _greeting = "Hello, world"; 
  public void setGreeting(String greeting) 
  { 
  _greeting = greeting; 
  System.out.println("set greetingsuccess:"+_greeting); 
  } 
  public String hello() 
  { 
  return _greeting; 
  } 
  public User getUser() { 
  return new User("prance", "meshow"); 
  } 
  } 

 

 

  创建一个实现Serializable的projo类也可以是Bean。
 

 

 package app.demo; 
  import java.io.Serializable; 
  public class User implements Serializable{ 
  String userName ="snoopy"; 
  String password ="showme"; 
  public User(Stringuser, String pwd) { 
  this.userName =user; 
  this.password= pwd; 
  } 
  public Stringg etUserName() { 
  returnuserName; 
  } 
  public String getPassword() { 
  returnpassword; 
  } 
  } 

 

  接下来是配置web.xml
  
<?xml version="1.0"encoding="UTF-8"?> 
  <web-app version="2.4" 
  xmlns="http://java.sun.com/xml/ns/j2ee" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
  http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
  <servlet> 
  <servlet-name>hello</servlet-name> 
  <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class> 
  <init-param> 
  <param-name>service-class</param-name> 
  <param-value>app.demo.BasicService</param-value> 
  </init-param> 
  </servlet> 
  <servlet-mapping> 
  <servlet-name>hello</servlet-name> 
  <url-pattern>/hello</url-pattern> 
  </servlet-mapping> 
  </web-app> 

 

 

  为了测试可以在编辑一个简单的test.jsp
  

 

<%@ pageimport="com.caucho.hessian.client.HessianProxyFactory, 
  app.demo.BasicAPI"%> 
  <%@page language="java"%> 
  <% 
  HessianProxyFactory factory = newHessianProxyFactory(); 
  String url = ("http://" +request.getServerName() + ":" +request.getServerPort() + 
  request.getContextPath() + "/hello"); 
  out.println(url); 
  BasicAPI basic = (BasicAPI) factory.create(BasicAPI.class,url); 
  out.println("Hello: " + basic.hello()); 
  out.println("Hello: " + basic.getUser() .getUserName() ); 
  out.println("Hello: " +basic.getUser().getPassword() ); 
  %> 

 

  将一切配置成功后,将项目发布到web 服务器上去,可以是Tomcat,Rain等等。
  进入
  结果如下:
  Hello: Hello, world
  Hello: snoopy
  Hello: showme
  说明服务器端已经编写成功。

java客户端

  创建一个名为HessianClient的JAVAProject,载入hessian.jar包
  创建与服务器端一样的接口,及基础类
  

 

public interface BasicAPI{ 
  public void setGreeting(Stringgreeting); 
  public String hello(); 
  public User getUser(); 
  } 
  import java.io.Serializable; 
  public class User implements Serializable{ 
  String userName ="snoopy"; 
  String password ="showme"; 
  public User(Stringuser, String pwd) { 
  this.userName =user; 
  this.password= pwd; 
  } 
  public StringgetUserName() { 
  return userName; 
  } 
  public StringgetPassword() { 
  return password; 
  } 
  } 

 

创建客户端程序

  
importcom.caucho.hessian.client.HessianProxyFactory; 
  public class BasicClient { 
  public static void main(String[] args) 
  throwsException 
  { 
  String url ="http://127.0.0.1:8080/Hessian/hello"; 
  HessianProxyFactoryfactory = new HessianProxyFactory(); 
  BasicAPIbasic = (BasicAPI) factory.create(BasicAPI.class, url); 
  System.out.println("Hello:" + basic.hello()); 
  System.out.println("Hello:" + basic.getUser().getUserName()); 
  System.out.println("Hello:" + basic.getUser().getPassword()); 
  basic.setGreeting("HelloGreeting"); 
  System.out.println("Hello:" + basic.hello()); 
  } 
  } 

 

 

  运行结果:
  Hello: Hello, world
  Hello: prance
  Hello: meshow
  Hello: Hello Greeting
分享到:
评论

相关推荐

    Hessian 使用小结

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

    Hessian多个版本打包下载

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

    多尺度hessian滤波器图像增强

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

    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-...

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

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

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

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

    hessian案例,hessian案例

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

    Spring中集成Hessian的问题

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

    Hessian矩阵以及在血管增强中的应用—OpenCV3和c++版本代码工程

    Hessian矩阵是图像处理和计算机视觉领域中一个重要的数学工具,尤其在特征检测和结构分析中扮演着关键角色。在本项目中,它被应用于血管增强,这是一个在医学成像和图像分析中常见的任务,目的是突出血管结构,以...

    Jerman增强滤波器 可行.zip_Hessian 滤波器_Jerman_hessian增强_血管增强_血管滤波器

    本文将详细探讨"Jerman增强滤波器",它是一种基于Hessian矩阵的滤波器,旨在突出图像中的血管结构。Hessian矩阵在图像处理中起到关键作用,因为它可以有效地检测图像的局部特征,特别是边缘和曲线。 首先,我们来...

    hessian学习基础篇——序列化和反序列化

    本文将深入探讨Hessian框架的基础知识,它是一个高效的二进制序列化协议,广泛应用于Java和.NET之间跨语言通信。通过学习Hessian,我们可以更有效地处理数据传输,提高应用性能。 首先,让我们理解什么是序列化。...

    基于matlab使用 hessian 特征值增强 2D3D 图像中的血管脊状结构

    这篇教程主要探讨了如何利用MATLAB编程环境以及Hessian矩阵来增强2D和3D图像中的血管脊状结构。Hessian矩阵是一种数学工具,用于计算图像中像素点的二阶导数,从而帮助识别图像的边缘和特征点。 首先,我们要理解...

    hessian

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

    基于python的Hessian Frangi滤波算法设计与实现

    在图像处理领域,Hessian Frangi滤波算法是一种用于血管检测和结构分析的高级技术,尤其在医学成像中有着广泛的应用。它基于Hessian矩阵,可以有效地检测图像中的线性和圆状结构。本篇文章将深入探讨如何使用Python...

    hessian服务端 客户端 可运行

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

    Hessian异步请求访问包

    在IT行业中,尤其是在移动开发领域,Hessian是一种广泛使用的二进制协议,它允许远程对象调用(Remote Object Invocation)。本知识点主要关注的是在Android平台上,如何使用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-...

    hessian使用小例子

    在IT行业中,Hessian是一种轻量级的二进制序列化协议,主要用于远程方法调用(RMI)和Web服务。Hessian由Caucho Technology开发,它的设计目标是提供比XML更快、更简洁的数据传输方式,从而提高网络通信效率。在Java...

    hessian_homework1_hessian_matlab中心线_hessianmatlab_

    在图像处理领域,Hessian矩阵是一种非常重要的工具,尤其在边缘检测和纹理分析中发挥着关键作用。本项目“hessian_homework1_hessian_matlab中心线_hessianmatlab_”是利用MATLAB实现的Hessian矩阵计算,用于寻找...

Global site tag (gtag.js) - Google Analytics