一、搭建服务端
准备:hessian-4.0.33.jar
1. 新建一个web工程:HessianTest;
2. 将hessian-4.0.33.jar导入到HessianTest工程中;
3. 新建3个package:bean、serviceimpl,分别作为java bean类、接口、接口实现类的包;
以上步骤完成之后,工程结构如下:
代码如下:
HelloWorld.java
package com.suning.hessian.bean; import java.io.Serializable; /** * 序列化bean * * @author guweiqiang * @date 2017年10月31日 */ public class HelloWorld implements Serializable { private static final long serialVersionUID = 7665113881604069023L; private long id; private String name; private int age; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "HelloWorld [id=" + id + ", name=" + name + ", age=" + age + "]"; } }
HessianService.java
package com.suning.hessian.service; import com.suning.hessian.bean.HelloWorld; /** * 定义对外提供服务的接口 * * @author guweiqiang * @date 2017年10月31日 */ public interface HessianService { HelloWorld sayHelloWorld(); }
HessianServiceImpl.java
package com.suning.hessian.impl; import com.suning.hessian.bean.HelloWorld; import com.suning.hessian.service.HessianService; /** * HessianService接口实现类 * * @author guweiqiang * @date 2017年10月31日 */ public class HessianServiceImpl implements HessianService { @Override public HelloWorld sayHelloWorld() { HelloWorld helloWorld = new HelloWorld(); helloWorld.setId(1l); helloWorld.setName("guweiqiang"); helloWorld.setAge(22); return helloWorld; } }
4.添加web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name>testHessian</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <!-- 配置 HessianServlet,Servlet的命名任意 --> <servlet-name>ServiceServlet</servlet-name> <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class> <!-- 配置接口的具体实现类 ,param-name命名任意 --> <init-param> <param-name>service-class</param-name> <param-value>com.suning.hessian.impl.HessianServiceImpl</param-value> </init-param> </servlet> <!-- 映射 HessianServlet的访问URL地址 --> <servlet-mapping> <servlet-name>ServiceServlet</servlet-name> <url-pattern>/ServiceServlet</url-pattern> </servlet-mapping> </web-app>
最后将工程添加到tomcat,并启动tomcat,输入:
http://localhost:8080//HessianTest/ServiceServlet
如果显示如下,说明hessian服务端启动成功:
二、编写测试客户端:
TestHessian.java
package com.suning.hessian; import java.net.MalformedURLException; import com.caucho.hessian.client.HessianProxyFactory; import com.suning.hessian.bean.HelloWorld; import com.suning.hessian.service.HessianService; /** * hessian测试客户端 * * @author guweiqiang * @date 2017-10-31 */ public class TestHessian { public static final String url = "http://127.0.0.1:8080/HessianTest/ServiceServlet"; public static void main(String[] args) { HessianProxyFactory factory = new HessianProxyFactory(); HessianService service = null; try { service = (HessianService) factory.create(HessianService.class, url);} catch (MalformedURLException e) { e.printStackTrace(); } //创建IService接口的实例对象 HelloWorld helloWorld = service.sayHelloWorld(); //调用Hessian服务器端的ServiceImpl类中的toString方法 System.out.println(helloWorld.toString()); } }
执行结果如下:
HelloWorld [id=1, name=guweiqiang, age=22]
至此hessian服务端和客户端搭建完成。
相关推荐
本文将深入探讨Hessian框架的基础知识,它是一个高效的二进制序列化协议,广泛应用于Java和.NET之间跨语言通信。通过学习Hessian,我们可以更有效地处理数据传输,提高应用性能。 首先,让我们理解什么是序列化。...
Hessian由Caucho Technology开发,其目标是提供轻量级、高效的通信方式,特别是在网络带宽有限的情况下。下面我们将深入探讨Hessian的学习、实例以及其在实际应用中的使用。 首先,Hessian的吸引力在于它的二进制...
Hessian是一种二进制协议,它被设计用于提高远程调用的效率,特别是在Java和C++之间进行跨语言通信时。Hessian的目标是提供一种快速、简洁的数据序列化和远程方法调用(RPC)机制。在这个简单的demo中,我们将探讨...
在这个“hessian学习实例”中,我们将深入探讨Hessian框架的使用,特别是如何将其与Spring框架集成,以及如何构建server端和client端。 首先,让我们理解Hessian的工作原理。Hessian基于HTTP协议,它将Java对象序列...
在"Flex + Hessian 学习笔记(二)"中,我们可能涉及以下几个关键知识点: 1. **Flex客户端开发**:Flex项目通常使用MXML和ActionScript编写,MXML用于声明式地构建UI,而ActionScript则用于编写应用程序逻辑。开发者...
Hessian是由Caucho Technology公司开发的一种二进制RPC(Remote Procedure Call)协议,它能够将Java对象序列化为高效的二进制格式,从而显著减少网络传输的数据量。Hessian支持HTTP协议,可以轻松地集成到现有的Web...
综上所述,学习Hessian需要掌握二进制序列化技术,理解远程方法调用的概念,熟悉Hessian的实现和使用,并关注安全性、性能优化等方面的问题。同时,通过阅读源码和实践项目,可以更深入地理解这个协议的精髓。
这是一个Hessian入门学习的实例,程序包是一个web工程,使用intellij idea + Maven开发,其中通过两个方式展示了使用Hessian实现RMI的原理,一个是访问jsp页面,一个是在代码中手工创建client。对于Hessian Servlet...
4. **序列化**:由于Hessian是基于二进制的,因此传输的对象需要实现`Serializable`接口,以确保它们能被正确序列化和反序列化。 5. **客户端调用**:客户端通过生成服务接口的代理对象来调用服务端的方法,这些...
Hessian是一种二进制Web服务协议,由Caucho公司开发。它提供了一种高效的RPC(Remote Procedure Call)机制,允许Java对象在HTTP上进行远程调用,其优点在于传输速度快、序列化效率高。Hessian支持多种语言,包括...
Hessian是由Caucho Technology开发的一种二进制Web服务协议,它提供了对Java对象序列化和反序列化的支持,使得远程调用如同本地调用一样快速和简单。与传统的XML-RPC或SOAP相比,Hessian的序列化格式更为紧凑,因此...
Hessian是一种高效的二进制序列化协议,常用于远程过程调用(RPC)和服务之间的通信。这个压缩包包含了Hessian的多个版本,分别是Hessian3.1.6、Hessian3.2.1以及Hessian4.0.7。每个版本都有其特定的功能改进和优化...
Hessian是一种高效的二进制RPC(Remote Procedure Call)协议,由Caucho Technology开发,旨在提供轻量级、高效的远程调用服务。在这个专题中,我们将以hessian-4.0.33.jar为例,详细探讨Hessian框架的核心特性和...
标题中的“闲着没事Hessian开发WebService的总结(一)”表明这是一篇关于使用Hessian框架开发Web服务的文章,作者可能在其中分享了个人的经验和理解。Hessian是一种轻量级的远程调用协议,它允许Java和.NET之间进行...
Hessian是一种二进制Web服务协议,它由Caucho Technology公司开发,主要用于提供轻量级、高效的远程方法调用(Remote Method Invocation,RMI)服务。Hessian的目标是简化分布式系统之间的通信,通过减少网络传输的...
1. **Hessian简介**:Hessian是由Caucho Technology开发的一种二进制Web服务协议,它提供了简洁、快速的数据传输方式,尤其适用于低带宽环境。Hessian支持RPC模式,允许服务端和客户端之间进行方法调用。 2. **Java...
Hessian学习笔记 Hessian是一种基于Binary-RPC协议实现的远程通讯library,由Caucho提供。下面是Hessian的学习笔记: 一、简介 Hessian是基于Binary-RPC协议实现的远程通讯library,用于实现远程过程调用(RPC)...
Hessian,由Caucho Technology开发,是一款轻量级、高效的RPC框架,它基于HTTP协议,以二进制格式传输数据,从而降低了网络通信的开销。本文将深入探讨Hessian在RPC实现中的原理、特点以及如何在实际项目中应用。 ...