`
winebibber
  • 浏览: 119500 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Hessian实例

    博客分类:
  • Java
阅读更多
    试着写了一个Hessian的例子,是参考caucho官网上的一个example,很简单,也没什么实际的意义,但足以领会Hessian的用法。

1、建立一个Remote Interface
  
   package com.hessian.test;

   public interface MathService {
 
     public int add(int a, int b);

   }
   


2、Service Implementation
  
   package com.hessian.test;

   import com.caucho.hessian.server.HessianServlet;

   public class HessianMathService extends HessianServlet 
                                implements MathService {

       public int add(int a, int b){
            return a + b;
       }

   }
   

    官网上的例子是没有实现MathService接口的,而且也能运行成功,但我觉得有点不合逻辑,不应该将该实现类作为MathService接口暴露给client端。

3、web.xml
  
   <servlet>
      <servlet-name>math</servlet-name>
      <servlet-class>com.hessian.test.HessianMathService</servlet-class>
   </servlet>
   <servlet-mapping>
       <servlet-name>math</servlet-name>
       <url-pattern>/hessian/math</url-pattern>
   </servlet-mapping>
   


4、Java client
  
   public class HessianClientTest {
      public static void main(String[] args){
          String url = "http://localhost:8080/hessiantest/hessian/math";
          HessianProxyFactory factory = new HessianProxyFactory();
          MathService math = null;
          try {
             math = (MathService)factory.create(MathService.class, url);
          } catch (MalformedURLException e) {
             System.out.println("occur exception: " + e);
          }
          System.out.println("3 + 2 = " + math.add(3, 2));
      }
    }
   

   使用java实现的client,通过HessianProxyFactory的create即可获取到服务接口。

5、python client
  
   from hessianlib import Hessian

   url = "http://localhost:8080/hessiantest/hessian/math"
   proxy = Hessian(url)
   print "2 + 3 =", proxy.add(2, 3)
   

   使用python实现的client,需加入hessianlib.py。

   以上就是一个完整的Hessian实现。

   Spring也提供了对Hessian的集成,若使用spring,server端的service实现类则不需实现HessianServlet,使用Spring的DispatcherServlet来配置一个Servlet暴露你的服务。
   web.xml
  
   <servlet>
      <servlet-name>remote</servlet-name>
      <servlet-class>
          org.springframework.web.servlet.DispatcherServlet
      </servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>

   <servlet-mapping>
       <servlet-name>remote</servlet-name>
       <url-pattern>/remote/*</url-pattern>
   </servlet-mapping>
   

   还需要在 WEB-INF 目录里创建一个名为 remote-servlet.xml(remote为你配置的servlet名)的应用上下文。
   remote-servlet.xml
  
   <bean id="mathService" class=" com.hessian.test.HessianMathService">
   </bean>

   <bean name="/math"  
        class="org.springframework.remoting.caucho.HessianServiceExporter">
      <property name="service" ref=" mathService "/>
      <property name="serviceInterface" value=" com.hessian.test.MathService "/>
   </bean>
   

server端做以上操作即可。

client端可以延用之前的操作,若使用spring则可通过 HessianProxyFactoryBean在客户端连接服务,在spring的配置中加入:
   
    <bean class="com.hessian.test.HessianClientTest">
        <property name="mathService" ref="mathService"/>
    </bean>

    <bean id=" mathService "  
         class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
       <property name="serviceUrl" 
             value="http://remotehost:8080/hessiantest/remote/math"/>
       <property name="serviceInterface" value="com.hessian.test.MathService"/>
    </bean>
    

加入以上的配置后,就可像使用其他的bean一样去操作了。原来实现一个webservice是可以这么简单的。

分享到:
评论
1 楼 UlsterBoy 2009-03-17  
问lz一下,客户端是不是需要定义 把 interface MathService 在定义一次?



      MathService math = null;

我刚才试了一下,client这里总是出错。

相关推荐

    flex中hessian实例

    总的来说,Flex中的Hessian实例涉及到了客户端与服务器之间的高效通信、ActionScript与Java的互操作、数据传输优化,以及图表组件的使用等多个方面,是Flex开发中的重要技能。深入理解和实践这些知识点,将有助于...

    Hessian实例下载

    在这个“Hessian实例”中,我们可以找到Hessian在实际应用中的具体示例和相关库文件。 标题提及的“Hessian实例下载”意味着这个压缩包包含了使用Hessian协议的示例代码和必要的库文件,方便开发者快速理解和学习...

    hessian实例 helloworld

    Hessian是一种高效的二进制RPC(Remote Procedure Call)协议,它比WebService更为简洁和快速。Hessian基于二进制格式,特别适合传输二进制数据,减少了网络传输的数据量,从而提高了通信效率。它通常被应用于Web...

    hessian 实例

    远程调用方法就是HttpInvoker:他也是将参数和返回值通过Java的序列化机制进行编组和反编组,它具有RMI的支持所有可序列化对象的...试使用Http协议传输二进制流的,同时又具有Hessian、Burlap(传输xml文本)的优点。

    Hessian 学习 例子 实例

    在IT行业中,Hessian是一种二进制序列化协议,它被广泛用于远程方法调用(RMI)和Web服务中,以提高数据传输效率。...在提供的链接中,博主otom31分享了一个具体的Hessian实例,可以作为学习和实践的起点。

    hessian使用小例子

    3. 在客户端,我们需要创建一个HessianProxyFactory实例来获取服务的代理对象,然后就可以调用远程方法了: ```java import com.caucho.hessian.client.HessianProxyFactory; public class Client { public ...

    Hessian工程实例

    Hessian工程实例主要涉及到的是Java服务端与客户端之间的高效远程通信技术。Hessian是由Caucho Technology开发的一种二进制RPC(Remote Procedure Call)协议,它允许Java对象以高效的二进制格式在网络间进行传输,...

    hessian学习实例

    在这个“hessian学习实例”中,我们将深入探讨Hessian框架的使用,特别是如何将其与Spring框架集成,以及如何构建server端和client端。 首先,让我们理解Hessian的工作原理。Hessian基于HTTP协议,它将Java对象序列...

    hessian包及一个简单的使用实例

    这里我们提供了一个使用Hessian 4.0.37的简单实例,包括服务器端和客户端的创建。 #### 服务器端(Server) 首先,定义一个服务接口和其实现: ```java public interface HelloWorldService { String sayHello...

    hessian简单实例

    在“hessian简单实例”中,我们有两个关键部分:`hessian-server`和`hessian-client`。`hessian-server`是服务端程序,它实现了我们需要暴露给客户端调用的方法;而`hessian-client`则是客户端程序,它负责连接到...

    flex-hessian-java实例.rar

    Flex-Hessian-Java实例是一个关于使用Flex客户端与Java服务器之间进行高效远程调用的实践案例。这个压缩包包含了实现这一技术所需的关键组件和文件。Flex是Adobe开发的一种开放源码的富互联网应用(RIA)开发框架,...

    hessian 使用实例

    Hessian是一种高效的二进制RPC(远程过程调用)协议,它被广泛应用于分布式系统中,以实现轻量级的服务间通信。Hessian提供了一种简单、快速的方式将Java对象序列化为字节流,然后在服务端和客户端之间进行传输。...

    Hessian学习入门实例

    这是一个Hessian入门学习的实例,程序包是一个web工程,使用intellij idea + Maven开发,其中通过两个方式展示了使用Hessian实现RMI的原理,一个是访问jsp页面,一个是在代码中手工创建client。对于Hessian Servlet...

    基于spring+hessian框架的webservice实例

    本实例重点探讨的是基于Spring框架和Hessian协议的Web Service实现,这是一种轻量级、高效的远程调用解决方案。 首先,我们要理解Spring框架。Spring是Java领域的一个核心框架,它提供了全面的编程和配置模型,用于...

    hessian入门实例,导入就可以直接运行

    这个"**hessian入门实例**"旨在帮助初学者快速理解并应用Hessian技术,通过导入到MyEclipse这样的集成开发环境中,可以直接运行示例代码,从而直观地了解Hessian的工作原理。 首先,我们要理解什么是RPC。RPC允许一...

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

    这个实例教程对于新手来说,是一个很好的起点,能够帮助你快速理解和实践Hessian的基本用法。在实际项目中,你还可以根据需要对安全性、性能等方面进行优化,比如添加认证机制、调整序列化策略等。

    spring mvc hessian maven简单实例

    在"Spring MVC Hessian Maven简单实例"中,我们将探讨如何将这三个技术结合在一起,以实现一个远程服务调用的解决方案。 首先,我们需要创建一个Maven项目,配置pom.xml文件来管理Spring MVC、Hessian和其它相关...

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

    这个压缩包文件包含了关于Hessian的入门实例以及如何将其与Spring框架整合的教程。 一、Hessian入门实例 Hessian的入门实例主要展示了如何创建一个简单的服务提供者和消费者。首先,我们需要定义一个服务接口,例如...

    外部接口调用 使用spring4+hessian4实例

    标题 "外部接口调用 使用spring4+hessian4实例" 涉及到的是在Java开发中,通过Spring框架和Hessian库实现远程服务调用的一个技术主题。Spring框架是Java领域广泛使用的轻量级框架,它提供了丰富的功能,包括依赖注入...

    hessian小实例

    四、Hessian应用实例 一个简单的Hessian应用可能包括以下部分: 1. **服务端**:定义一个名为`Calculator`的接口,包含`add(int a, int b)`方法。实现`CalculatorImpl`类,并在Servlet容器(如Tomcat)中部署...

Global site tag (gtag.js) - Google Analytics