`
bit1129
  • 浏览: 1070080 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【RPC框架Hessian一】Hessian RPC Hello World

 
阅读更多

什么是Hessian

The Hessian binary web service protocol makes web services usable without requiring a large framework, and without learning yet another alphabet soup of protocols. Because it is a binary protocol, it is well-suited to sending binary data without any need to extend the protocol with attachments.

 

Hessian版HelloWorld

1. 创建基于Maven的web项目

2. pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>user.project</artifactId>
        <groupId>com.tom</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>learn.hessian</artifactId>

    <dependencies>
        <dependency>
            <groupId>com.caucho</groupId>
            <artifactId>hessian</artifactId>
            <version>4.0.38</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!--jetty plugin to manage embedded jetty-->
            <!--No goal  is specified-->
            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>maven-jetty-plugin</artifactId>
                <version>6.1.7</version>
                <configuration>
                    <connectors>
                        <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
                            <port>8668</port>
                            <maxIdleTime>30000</maxIdleTime>
                        </connector>
                    </connectors>
                    <webAppSourceDirectory>${project.basedir}/web
                    </webAppSourceDirectory>
                    <contextPath>/web</contextPath>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

 

 上面主要配置了三部分内容,一是依赖的Hessian包,二是Hessian依赖的servlet-api包(Hessian包虽然依赖servlet-api,但在Hessian包的依赖关系中并没有显示的去依赖servlet-api包),三是添加jetty插件,用于启动web项目

 

3.定义服务器和客户端都会依赖的接口service

在HelloWorld中,没有复杂的Model对象,在实际项目中,服务器端和客户端共同依赖的内容包括模型对象和接口Service

 

 

package com.tom.hessian.common;

import java.io.IOException;

public interface IGreetingService {
    public String greeting(String name) throws IOException;
}

 

 

4.定义服务器接口实现

 

package com.tom.hessian.server;

import com.tom.hessian.common.IGreetingService;

import java.io.IOException;

public class GreetingService implements IGreetingService{
    @Override
    public String greeting(String name) throws IOException {
        return "Welcome ot the Hassian world, " + name;
    }
}

 

 

5. 配置web.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <servlet>
        <servlet-name>hessian</servlet-name>
        <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
        <init-param>
            <param-name>home-api</param-name><!--接口声明-->
            <param-value>com.tom.hessian.common.IGreetingService</param-value>
        </init-param>
        <init-param>
            <param-name>home-class</param-name><!--接口实现-->
            <param-value>com.tom.hessian.server.GreetingService</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>hessian</servlet-name>
        <url-pattern>/hessian</url-pattern>
    </servlet-mapping>
</web-app>

 

 

6.客户端代码

package com.tom.hessian.client;

import com.caucho.hessian.client.HessianProxyFactory;
import com.tom.hessian.common.IGreetingService;


public class GreetingServiceTest {
    public static void main(String[] args) throws Exception {
        //RPC访问地址
        String url = "http://localhost:8668/web/hessian";

        //接口的动态代理工厂
        HessianProxyFactory factory = new HessianProxyFactory();
        IGreetingService greetingService = (IGreetingService) factory.create(IGreetingService.class, url);

        //远程方法调用
        System.out.println("hello(), " + greetingService.greeting("tom"));
    }
}

 

7.运行

启动jetty服务器,运行客户端main方法,得到如下输出,证明远程方法调用成功

hello, welcome ot the Hassian world, tom

 

 

 

 

 

 

 

 

 

 

 

 

0
1
分享到:
评论

相关推荐

    hessian实例 helloworld

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

    Hessian远程调用RPC最简单demo

    Hessian是Apache软件基金会的Caucho项目开发的一个开源RPC框架,它支持二进制协议,能够高效地进行远程方法调用。本教程将详细介绍"Hessian远程调用RPC最简单demo",包括服务器端服务发布和客户端服务调用的实现,...

    基于spring+hessian框架的webservice实例

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

    spring springmvc hessian rpc客户端及服务端示例demo

    本示例着重介绍如何在Spring和SpringMVC框架中集成Hessian RPC,以实现客户端和服务端的通信。 Hessian是一种轻量级的二进制Web服务协议,由Caucho公司开发。它具有较高的传输效率,支持Java和.NET等多种语言,特别...

    hessian示例远程轻量级传输

    HelloWorld hello = (HelloWorld) factory.create(HelloWorld.class, url); System.out.println(hello.sayHello("World")); } } ``` 运行服务端和客户端,你将在客户端看到"Hello, World"的输出,这就完成了...

    Hessian的Spring配置

    在Spring框架中,Hessian是一种轻量级的远程方法调用(RPC)协议,它能够实现Java对象到字节流的序列化,从而使得服务端的对象可以在客户端直接调用,仿佛对象就在本地一样。Hessian提供了高效的二进制RPC协议,使得...

    Hessian的学习笔记

    Hessian是一种基于Binary-RPC协议实现的远程通讯library,由Caucho提供。下面是Hessian的学习笔记: 一、简介 Hessian是基于Binary-RPC协议实现的远程通讯library,用于实现远程过程调用(RPC)。Hessian提供了一...

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

    Hessian是一种轻量级的RPC(远程过程调用)协议,它基于HTTP协议,用于实现分布式服务之间的通信。Hessian的出现旨在解决XML-RPC在数据传输时过于冗重的问题,它采用二进制编码,使得数据传输更高效。本文将深入探讨...

    Java Hessian小试(转)

    在实际应用中,开发者需要根据项目需求权衡是否选择Hessian,或者考虑使用其他更完善的RPC框架,如gRPC、Dubbo等。 标签中的"源码"可能意味着要深入理解Hessian的内部工作原理,这包括了解其序列化和反序列化的算法...

    Dubbo入门之HelloWorld

    在IT行业中,分布式服务框架是构建大型互联网应用的关键技术之一,Dubbo作为阿里巴巴开源的一款高性能、轻量级的Java RPC框架,受到了广泛的关注和使用。本文将基于"Dubbo入门之HelloWorld"的主题,深入探讨如何从零...

    hessian 使用实例

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

    Web Service Hessian 开发

    Web服务是分布式系统中一种常见的通信方式,而Hessian是一种高效的二进制RPC协议,它被广泛用于构建轻量级的Web服务。本篇将深入探讨Hessian在Web服务开发中的应用,以及如何利用Hessian进行客户端和服务端的实现。 ...

    hessian+spring小案例

    Hessian是一个轻量级的远程服务调用框架,其核心功能是提供类似于RMI(远程方法调用)的服务,但采用的是更为高效的二进制RPC(远程过程调用协议)。这使得Hessian非常适合用于传输大量的二进制数据,并且在性能上...

    maven-spring-hessian:带有 Hessian 的 Hello world Spring Web 应用程序

    【标题】"maven-spring-hessian:带有 Hessian 的 Hello world Spring Web 应用程序" 描述了一个基于 Maven、Spring 和 Hessian 技术构建的简单 Web 应用示例。这个项目的核心是演示如何在分布式环境中使用 Hessian ...

    用spirng和hessian构建分布式应用(远程接口)的方法

    Hessian是一个轻量级的 RPC 框架,基于 HTTP 协议,可以轻松地实现跨语言的远程调用。Spring 是一个基于 Java 的开源框架,提供了一个完整的应用程序开发框架。 首先,我们需要开启几个包:whao.test.hessian....

    hessian例子

    Hessian是一种二进制Web服务协议,由Caucho Technology公司开发,它的主要目标是提供高效、简洁的数据传输方式,特别适用于远程方法调用(RPC)场景。在Java和C++等语言中,Hessian提供了良好的跨语言支持,使得不同...

    Hessian

    Hessian是一种高效的二进制RPC(远程过程调用)协议,常用于Web服务。它是由Caucho Technology开发的,目的是为了提高XML-based的Web服务如SOAP的性能。Hessian通过使用二进制格式来编码数据,相比XML,它更紧凑,...

    spring mvc hessian maven简单实例

    Hessian则是一种轻量级的RPC(Remote Procedure Call)协议,它允许Java对象在HTTP上进行远程调用,提供了高效的服务调用方式。Maven是Java项目管理工具,用于管理项目的依赖关系、构建过程等。在这个实例中,我们将...

    RPC应用的java实现

    在Java中实现RPC,有许多框架可供选择,如Apache的Axis、Hessian、gRPC等。这里以简单的XML-RPC为例进行说明: 1. **定义业务处理接口**:首先,我们需要定义一个接口,这个接口包含远程服务的方法。例如: ```java...

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

    Hessian是一种轻量级的远程方法调用(RPC)协议,它基于HTTP协议,以二进制序列化的方式传输数据,使得远程服务调用如同本地方法调用一样快速且高效。这个压缩包文件包含了关于Hessian的入门实例以及如何将其与...

Global site tag (gtag.js) - Google Analytics