什么是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
相关推荐
Hessian是一种高效的二进制RPC(Remote Procedure Call)协议,它比WebService更为简洁和快速。Hessian基于二进制格式,特别适合传输二进制数据,减少了网络传输的数据量,从而提高了通信效率。它通常被应用于Web...
Hessian是Apache软件基金会的Caucho项目开发的一个开源RPC框架,它支持二进制协议,能够高效地进行远程方法调用。本教程将详细介绍"Hessian远程调用RPC最简单demo",包括服务器端服务发布和客户端服务调用的实现,...
本实例重点探讨的是基于Spring框架和Hessian协议的Web Service实现,这是一种轻量级、高效的远程调用解决方案。 首先,我们要理解Spring框架。Spring是Java领域的一个核心框架,它提供了全面的编程和配置模型,用于...
本示例着重介绍如何在Spring和SpringMVC框架中集成Hessian RPC,以实现客户端和服务端的通信。 Hessian是一种轻量级的二进制Web服务协议,由Caucho公司开发。它具有较高的传输效率,支持Java和.NET等多种语言,特别...
HelloWorld hello = (HelloWorld) factory.create(HelloWorld.class, url); System.out.println(hello.sayHello("World")); } } ``` 运行服务端和客户端,你将在客户端看到"Hello, World"的输出,这就完成了...
在Spring框架中,Hessian是一种轻量级的远程方法调用(RPC)协议,它能够实现Java对象到字节流的序列化,从而使得服务端的对象可以在客户端直接调用,仿佛对象就在本地一样。Hessian提供了高效的二进制RPC协议,使得...
Hessian是一种基于Binary-RPC协议实现的远程通讯library,由Caucho提供。下面是Hessian的学习笔记: 一、简介 Hessian是基于Binary-RPC协议实现的远程通讯library,用于实现远程过程调用(RPC)。Hessian提供了一...
Hessian是一种轻量级的RPC(远程过程调用)协议,它基于HTTP协议,用于实现分布式服务之间的通信。Hessian的出现旨在解决XML-RPC在数据传输时过于冗重的问题,它采用二进制编码,使得数据传输更高效。本文将深入探讨...
在实际应用中,开发者需要根据项目需求权衡是否选择Hessian,或者考虑使用其他更完善的RPC框架,如gRPC、Dubbo等。 标签中的"源码"可能意味着要深入理解Hessian的内部工作原理,这包括了解其序列化和反序列化的算法...
在IT行业中,分布式服务框架是构建大型互联网应用的关键技术之一,Dubbo作为阿里巴巴开源的一款高性能、轻量级的Java RPC框架,受到了广泛的关注和使用。本文将基于"Dubbo入门之HelloWorld"的主题,深入探讨如何从零...
Hessian是一种高效的二进制RPC(远程过程调用)协议,它被广泛应用于分布式系统中,以实现轻量级的服务间通信。Hessian提供了一种简单、快速的方式将Java对象序列化为字节流,然后在服务端和客户端之间进行传输。...
Web服务是分布式系统中一种常见的通信方式,而Hessian是一种高效的二进制RPC协议,它被广泛用于构建轻量级的Web服务。本篇将深入探讨Hessian在Web服务开发中的应用,以及如何利用Hessian进行客户端和服务端的实现。 ...
Hessian是一个轻量级的远程服务调用框架,其核心功能是提供类似于RMI(远程方法调用)的服务,但采用的是更为高效的二进制RPC(远程过程调用协议)。这使得Hessian非常适合用于传输大量的二进制数据,并且在性能上...
【标题】"maven-spring-hessian:带有 Hessian 的 Hello world Spring Web 应用程序" 描述了一个基于 Maven、Spring 和 Hessian 技术构建的简单 Web 应用示例。这个项目的核心是演示如何在分布式环境中使用 Hessian ...
Hessian是一个轻量级的 RPC 框架,基于 HTTP 协议,可以轻松地实现跨语言的远程调用。Spring 是一个基于 Java 的开源框架,提供了一个完整的应用程序开发框架。 首先,我们需要开启几个包:whao.test.hessian....
Hessian是一种二进制Web服务协议,由Caucho Technology公司开发,它的主要目标是提供高效、简洁的数据传输方式,特别适用于远程方法调用(RPC)场景。在Java和C++等语言中,Hessian提供了良好的跨语言支持,使得不同...
Hessian是一种高效的二进制RPC(远程过程调用)协议,常用于Web服务。它是由Caucho Technology开发的,目的是为了提高XML-based的Web服务如SOAP的性能。Hessian通过使用二进制格式来编码数据,相比XML,它更紧凑,...
Hessian则是一种轻量级的RPC(Remote Procedure Call)协议,它允许Java对象在HTTP上进行远程调用,提供了高效的服务调用方式。Maven是Java项目管理工具,用于管理项目的依赖关系、构建过程等。在这个实例中,我们将...
在Java中实现RPC,有许多框架可供选择,如Apache的Axis、Hessian、gRPC等。这里以简单的XML-RPC为例进行说明: 1. **定义业务处理接口**:首先,我们需要定义一个接口,这个接口包含远程服务的方法。例如: ```java...
Hessian是一种轻量级的远程方法调用(RPC)协议,它基于HTTP协议,以二进制序列化的方式传输数据,使得远程服务调用如同本地方法调用一样快速且高效。这个压缩包文件包含了关于Hessian的入门实例以及如何将其与...