`

Hessian进行远程对象调用(转)

阅读更多

具体网址参见如下:

http://baike.baidu.com/view/2255290.htm

Hessian

百科名片

  
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客户端例子:

服务器端

新建一个名EasyHessionwebProject 项目,Hessian.jar 放入web-inf 下的lib

 

  创建接口:

  packageapp.demo;

  public interfaceBasicAPI {

  public void setGreeting(Stringgreeting);

  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");

  }

  }

  创建一个实现Serializableprojo 类也可以是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 StringgetUserName() {

      returnuserName;

  }

  public StringgetPassword() {

      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 服务器上去, 可以是TomcatRain 等等。

  进入

  结果如下:

  Hello: Hello, world

  Hello: snoopy

  Hello: showme

  说明服务器端已经编写成功。

创建客户端程序

      创建一个名为HessianClientJAVAProject ,载入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() {

  returnuserName;

  }

  public StringgetPassword() {

  returnpassword;

  }

  }

  创建客户端程序

  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是Apache项目下的一个轻量级的RPC(Remote Procedure Call,远程过程调用)框架,它提供了一种高效的二进制协议,用于在网络之间传递Java对象。下面我们将详细介绍Hessian的实现原理以及如何在实际开发中运用...

    java+hessian 远程调用

    Java Hessian远程调用是一种高效的、轻量级的RPC(Remote Procedure Call)解决方案,它允许Java应用程序通过网络进行跨语言的通信。Hessian是BEA Systems开发的一种二进制Web服务协议,它提供了序列化和远程方法...

    spring整合hessian进行远程通讯

    Spring会自动创建代理对象,使得客户端可以通过这个代理对象调用远程服务的方法,就像调用本地对象一样。 3. **使用源码分析**: Hessian库提供了`HessianProxyFactoryBean`和`HessianServiceExporter`这两个关键...

    Hessian远程调用框架学习一

    Hessian远程调用框架是基于Java的轻量级RPC(Remote Procedure Call)解决方案,它允许开发者在分布式系统中实现高效、便捷的跨网络对象方法调用。本教程将引导你入门Hessian,通过一个简单的JAVA demo来理解其工作...

    Hessian Binary Web Service Protocol远程接口调用入门Demo

    本教程将通过一个入门Demo来介绍如何使用Hessian进行远程接口调用。 首先,让我们理解Hessian的优势。与XML-RPC相比,Hessian使用二进制编码,因此在网络传输时占用的带宽更少,解析速度更快。此外,Hessian支持...

    Hessian远程调用RPC最简单demo

    本教程将详细介绍"Hessian远程调用RPC最简单demo",包括服务器端服务发布和客户端服务调用的实现,以及所需资源。 首先,我们来看一下`hessian-4.0.7.jar`这个文件。这是Hessian库的核心组件,包含了实现Hessian...

    hessian框架应用,实现远程调用,分布式开发

    Hessian支持序列化Java对象,使得远程调用如同本地调用一样便捷,极大地提高了开发效率。 一、Hessian框架的核心特性: 1. **二进制协议**:Hessian采用高效的二进制协议,与基于文本的HTTP协议相比,数据传输量更...

    hessian示例远程轻量级传输

    Hessian是一种基于二进制协议的轻量级远程方法调用(RMI)技术,由Caucho Technology开发。它的设计目标是提供一种高效、简洁的方式来传输Java对象和方法调用,使得分布式应用间的通信变得更加简单和快速。在本文中,...

    Spring整合Hessian访问远程服务

    总的来说,Spring整合Hessian访问远程服务是Java开发中的常见实践,它利用Spring的灵活性和Hessian的高效性,简化了服务的发布和调用流程,是构建分布式系统时的一个有效工具。通过学习和掌握这一技术,开发者可以更...

    远程调用服务框架

    远程调用服务框架是软件开发中的一个重要组成部分,它允许不同系统、不同网络环境下的应用程序之间进行通信,实现功能的解耦合和分布式系统的构建。在Java世界中,Spring框架提供了强大的支持来实现这一目标。本篇...

    hession远程调用分享

    《Hessian远程调用技术详解》 在分布式系统中,远程调用是常见的通信方式,它使得服务可以跨越网络边界,实现组件之间的交互。Hessian,由Caucho公司开发,是一种高效的二进制RPC(Remote Procedure Call)协议,常...

    轻量级远程服务调用Hessian的入门实例和与Spring整合的实例.zip

    3. 透明性:对于客户端来说,调用远程服务就像调用本地对象一样,降低了复杂性。 总结,这个压缩包文件提供了一个完整的Hessian学习路径,包括基础的Hessian服务创建和更高级的与Spring框架的整合。通过实践这些...

    使用hessian进行服务器-客户端通讯

    Hessian是一种二进制Web服务协议,它提供了一种高效的RPC(远程过程调用)机制,使得服务器和客户端之间能够进行快速、简单的通信。在Java环境中,Hessian库被广泛用于构建分布式应用,因为它可以将Java对象序列化为...

    用hessian c#桌面程序调用J2EE后台服务

    Hessian是一种二进制的远程过程调用(RPC)协议,由BEA Systems(现为Oracle的一部分)开发,它允许不同语言之间进行高效、简洁的数据交换。 1. **Hessian协议**:Hessian是一种轻量级的序列化和RPC协议,它的主要...

    hessian demo 包括服务端和客户端

    6. **调用远程方法**:通过代理对象调用服务端的方法,就像调用本地方法一样。 **标签中的“hessian”和“java”**表明这是关于Java平台上的Hessian技术。Hessian是跨语言的,但在这个例子中,我们专注于Java环境下...

    spring远程调用简单实例

    远程调用是指应用程序的不同组件或服务之间,通过网络进行通信的一种方式。Spring支持多种远程调用协议,如RMI(Remote Method Invocation)、Hessian、 Burlap以及HTTP Invoker等。这些协议允许我们跨越网络边界,...

    利用hessian进行系统通信实例教程

    - 客户端可以通过Spring自动注入的方式获取到Hessian服务代理对象,然后像调用本地方法一样调用远程服务。 三、HessianServer项目 在压缩包中的`HessianServer`项目,包含了服务端的实现。在这个项目中,你会看到...

    Hessian调用

    Hessian的目标是提供高效、简单的方式进行跨语言、跨平台的服务调用,尤其适合Java和Adobe Flex之间的通信。在本篇中,我们将深入探讨Hessian调用的相关知识点。 首先,我们要理解Hessian调用的核心概念。Hessian...

    Hessian案列代码

    总的来说,Hessian案列代码展示了如何使用Hessian进行远程方法调用。通过对服务端的设置、客户端的调用以及处理序列化和反序列化,我们可以实现高效、便捷的分布式系统通信。这个案例对于理解Hessian的工作原理及其...

Global site tag (gtag.js) - Google Analytics