`

初识 hessian

 
阅读更多
1、简介:
轻量级的远程调用工具,采用的RCP二进制协议,适合于发送二进制数据。
2、简单的例子
服务器端:
•Hessian.jar 包  http://hessian.caucho.com/#Java  jav版的
•设计一个接口,用来给客户端调用,并实现该接口
接口
public interface BasicAPI {
	public void setGreeting(String greeting); 
	public String hello(); 
	public User getUser(); 
	
	public Map<Long,User> testMap();
	
	public String check(String name,String public_key);
}
接口实现
public class BasicService implements BasicAPI{
	private String _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");
	}
	public Map<Long, User> testMap() {
		long aaa = System.currentTimeMillis();
		Map<Long, User> map = new HashMap<Long, User>();
		for (Long i = 0l; i < 100000l; i++) {
			map.put(i,new User("user"+i));
		}
		System.out.println(System.currentTimeMillis() - aaa);
		return map;
	}
	public String check(String name, String public_key) {
		 System.out.println(name+" :"+public_key);
		 return public_key;
	} 
}

•配置web.xml 
	  <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>e.demo.BasicService</param-value>
 	</init-param>
  </servlet>
  <servlet-mapping>
  		<servlet-name>hello</servlet-name>
  		<url-pattern>/hello</url-pattern>
</servlet-mapping>
•	对象必须实现Serializable 接口
     User 类
public class User implements Serializable{
	private Long id;
	private String name;
	

	public User(String name) {
		 this.name = name;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}
}
	对于复杂对像可以使用Map的方法传递


测试的test.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="com.caucho.hessian.client.HessianProxyFactory"%>
<%@page import="e.demo.BasicAPI"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

HessianProxyFactory factory = new HessianProxyFactory();
String  url = basePath+"/hello";
out.println(url);

BasicAPI basic = (BasicAPI)factory.create(BasicAPI.class,url);
out.println("Hello: " + basic.hello()+"\n"); 
out.println("Hello: " + basic.getUser().getName()+"\n"); 
out.println("Hello: " + basic.testMap().size()+"\n"); 
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
  </head>
  
  <body>
  <br>
    This is my JSP page. <br>
  </body>
</html>



客户端:
public class BasicClient {
	public static void main(String[] args) {
			Long start = System.currentTimeMillis();
			BasicAPI basic = getBasicAPI();
			 
			Map<Long, User> map = basic.testMap();
			
			for (Long l : map.keySet()) {
				//System.out.println(l+"  ----  "+map.get(l).getName());
			}
			
			System.out.println("-------------------"+map.size());
			Long end = System.currentTimeMillis();
			
			System.out.println(end-start);
			
	}
	
	public static BasicAPI getBasicAPI(){
		String url = "http://localhost:8002/EasyHession/hello";
		HessianProxyFactory factory = new HessianProxyFactory();
		BasicAPI basic = null;
		try {
			basic = (BasicAPI) factory.create(BasicAPI.class, url);
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
		return basic;
	}
	
}










 

分享到:
评论

相关推荐

    Hessian

    **Hessian:深入理解与应用** Hessian是一种二进制Web服务协议,它由Caucho Technology公司开发,主要用于提供轻量级、高效的远程方法调用(Remote Method Invocation,RMI)服务。Hessian的目标是简化分布式系统...

    Hessian 使用小结

    Hessian的设计目标是为了提供高效、简单的远程调用方式,使得客户端能够像调用本地方法一样调用远程服务。 **独立使用Hessian** 在不依赖任何框架的情况下,使用Hessian的步骤如下: 1. **添加依赖**:首先,...

    Hessian多个版本打包下载

    这个压缩包包含了Hessian的多个版本,分别是Hessian3.1.6、Hessian3.2.1以及Hessian4.0.7。每个版本都有其特定的功能改进和优化,了解这些版本的区别和适用场景对于开发者来说至关重要。 Hessian3.1.6是Hessian的一...

    hessian案例,hessian案例

    Hessian是一种高效的二进制序列化协议,常用于实现轻量级的远程过程调用(RPC)。这个案例涉及到了Hessian在Java和Python之间的跨语言通信。以下是对Hessian技术及其应用的详细解释: 1. **Hessian简介**:Hessian...

    多尺度hessian滤波器图像增强

    在图像处理领域,多尺度Hessian滤波器是一种高级的图像增强技术,它主要用于检测图像中的线性结构,特别是对于微弱或者噪声较大的图像特征有很好的识别能力。这个技术是基于数学形态学的Hessian矩阵理论,由V.S. ...

    基于Hessian矩阵增强的心血管分割_hessian_hessian血管_hessian血管分割_血管分割_Hessian矩阵

    在IT领域,尤其是在医学图像分析中,Hessian矩阵是一个重要的数学工具,用于图像特征检测,特别是在血管分割的应用中。本文将深入探讨标题和描述中提到的"基于Hessian矩阵增强的心血管分割"这一主题。 Hessian矩阵...

    hessian

    Hessian是一种二进制Web服务协议,由Caucho Technology公司开发,主要用于提供轻量级、高效的远程方法调用(Remote Method Invocation, RMI)机制。它结合了HTTP协议的可扩展性和Java序列化机制的易用性,使得在...

    dubbo-hessian协议http请求demo(java)

    - 在实际开发中,我们可能会需要编写一些辅助工具类来处理Hessian的相关操作,例如Hessian2Input和Hessian2Output,它们用于读写Hessian序列化的二进制流。 6. **安全性与优化**: - 虽然Hessian协议效率高,但其...

    Hessian应用

    《Hessian应用详解》 Hessian,一种轻量级的二进制协议,因其高效、简单的特点,在分布式服务中被广泛应用。它允许开发者在HTTP上透明地调用远程方法,就像是本地方法调用一样,极大地提高了开发效率和系统性能。...

    Spring中集成Hessian的问题

    在Spring框架中集成Hessian是为了实现远程方法调用(Remote Method Invocation, RMI),这是一种轻量级的序列化协议,可以高效地传输Java对象。Hessian使得服务提供者和服务消费者之间能够通过网络进行快速的数据...

    hessian-4.0.63-API文档-中英对照版.zip

    赠送jar包:hessian-4.0.63.jar; 赠送原API文档:hessian-4.0.63-javadoc.jar; 赠送源代码:hessian-4.0.63-sources.jar; 赠送Maven依赖信息文件:hessian-4.0.63.pom; 包含翻译后的API文档:hessian-4.0.63-...

    Hessian协议格式

    Hessian 协议格式 Hessian 协议是一种轻量级的 remoting on http 工具,使用简单的方法提供了 RMI 的功能。采用的是二进制 RPC 协议,所以它很适合于发送二进制数据。Hessian 主要用作面向对象的消息通信。 ...

    hessian学习基础篇——序列化和反序列化

    本文将深入探讨Hessian框架的基础知识,它是一个高效的二进制序列化协议,广泛应用于Java和.NET之间跨语言通信。通过学习Hessian,我们可以更有效地处理数据传输,提高应用性能。 首先,让我们理解什么是序列化。...

    Hessian的Spring配置

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

    hessian服务端 客户端 可运行

    在这个“hessian服务端 客户端 可运行”的压缩包文件中,很可能包含了一个完整的示例,让我们来详细探讨Hessian在服务端和客户端的实现及其重要性。 首先,我们来理解一下Hessian服务端。在Java中,Hessian服务端...

    hessianServer

    在IT行业中,Hessian是一种基于二进制协议的RPC(远程过程调用)框架,它使得客户端和服务端之间能够高效地进行数据交换。HessianServer指的是实现Hessian协议的服务端程序,通常用于构建分布式系统,使得不同的应用...

    hessian-4.0.33.jar

    《深入理解Hessian框架:以hessian-4.0.33.jar为例》 Hessian是一种高效的二进制RPC(Remote Procedure Call)协议,由Caucho Technology开发,旨在提供轻量级、高效的远程调用服务。在这个专题中,我们将以hessian...

    Hessian异步请求访问包

    在IT行业中,尤其是在移动开发领域,Hessian是一种广泛使用的二进制协议,它允许远程对象调用(Remote Object Invocation)。本知识点主要关注的是在Android平台上,如何使用Hessian进行异步请求访问,以便提高应用...

    Hessian学习简单demo

    Hessian是一种二进制协议,它被设计用于提高远程调用的效率,特别是在Java和C++之间进行跨语言通信时。Hessian的目标是提供一种快速、简洁的数据序列化和远程方法调用(RPC)机制。在这个简单的demo中,我们将探讨...

    springMVC hessian

    SpringMVC 和 Hessian 是两种在 Java 开发中常见的技术,它们在构建分布式系统时扮演着重要角色。SpringMVC 是 Spring 框架的一部分,主要用于构建 Web 应用的 MVC(模型-视图-控制器)架构。而 Hessian 是一种轻量...

Global site tag (gtag.js) - Google Analytics