`

Hessian学习笔记之Hessian实例

    博客分类:
  • Java
阅读更多

1.简介

     Hessian是一个轻量级的remoting on http工具,通过简单的方法提供了RMI的功能。 与WebService相比较而言,Hessian更简单、快捷。

     Hessian采用的是二进制的RPC协议,正是因为它采用的是二进制协议,所以它很适合于发送二进制数据。

 

2.实例讲解

   服务端:

              a.下载hessian.jar,链接地址:http://hessian.caucho.com/#Java,选择所需要的版本。

              b.在开发服务端的时候是web工程。

              c.代码实现如下:                        

        public interface MyHessianInterface {
             public void say(String str);
             public String hello();
             public PeopleInfo getUser();
        }       
public class MyHessian implements MyHessianInterface {
    private String str = "Hello Hessian" ;
    
	@Override
	public void say(String str) {
		this.str = str ;
		System.out.println("setting say success: " + str);
	}

	@Override
	public String hello() {		
		return str;
	}

	@Override
	public PeopleInfo getUser() {
		return new PeopleInfo("Apple","apple@1234");
	}
}        
public class PeopleInfo implements Serializable {
	private static final long serialVersionUID = -1938252045479387918L;
	
	private String people_name = "Hessian" ;
        private String people_password = "hessian@1234";
    
        public PeopleInfo(String people_name,String people_password){
    	    this.people_name = people_name ;
    	    this.people_password = people_password;
        }
    
        public String getPeopleName(){
    	   return people_name ;
        }
    
        public String getPeoplePassword(){
    	   return people_password ;
        }
   }

                 

             d.web.xml配置文件如下:                 

<?xml version="1.0"  encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xmlns="http://java.sun.com/xml/ns/javaee" 
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
         id="WebApp_ID"  version="3.0">
  <servlet>
     <servlet-name>hessian</servlet-name>
     <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
     <init-param>
        <param-name>service-class</param-name>
        <param-value>com.zh.hessian.MyHessian</param-value>
     </init-param>  
  </servlet>
  
  <servlet-mapping>
     <servlet-name>hessian</servlet-name>
     <url-pattern>/hessian</url-pattern>
  </servlet-mapping>
</web-app>

   

    客户端:

             a.必须加载hessian.jar

             b.在开发客户端的时候是Java工程

             c.代码实现:                      

public interface HessianClientInteface {
   public void say(String str);
   public String hello();
   public PeopleInfo getUser();
}
public class PeopleInfo implements Serializable {
	private static final long serialVersionUID = 8268991521882061845L;
	
	private String people_name = "hello hessian" ;
	private String people_password = "hello hessian@1234" ;
	
	public PeopleInfo(String people_name,String people_password){
		this.people_name = people_name ;
		this.people_password = people_password ;
	}
	
	public String getPeopleName(){
		return people_name ;
	}
	
	public String getPeoplePassword(){
		return people_password ;
	}	
} 
public class MyHessianClient {
   public static void main(String[] args) throws Exception{
	   String url = "http://127.0.0.1:8080/JavaDemo/hessian" ;
	   HessianProxyFactory factory = new HessianProxyFactory();
	   HessianClientInteface hc = (HessianClientInteface)factory.create(HessianClientInteface.class,url);
	   System.out.println("hello: " + hc.hello());
	   System.out.println("name: " + hc.getUser().getPeopleName());
	   System.out.println("password: " + hc.getUser().getPeoplePassword());
	   
	   hc.say("sssss");
	   System.out.println("say: " + hc.hello());
   }
}

 

3.测试结果

       先启动tomcat服务,然后在运行客户端的程序,最后在控制台查看结果。例如,示例上所示,最后的结果如下:

      Client:

              hello: Hello Hessian

       name: Apple

       password: apple@1234

       say: sssss

Server:

       setting say success: sssss

 

 

    

27
11
分享到:
评论

相关推荐

    Flex + Hessian 学习笔记(二)

    这篇学习笔记将深入探讨这两个技术,并通过实例代码解析它们的工作原理。 Flex是Adobe开发的一个开源框架,主要用于创建交互式、高性能的RIA,通常基于ActionScript编程语言和Flash Player或Adobe AIR运行时。Flex ...

    Hessian的学习笔记

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

    路径规划-深蓝学院数值优化学习笔记(含PPT)

    深蓝学院的数值优化学习笔记可能包含了上述概念的详细介绍,通过实例和PPT讲解,帮助学习者逐步掌握这些方法,并应用于实际路径规划问题中。通过深入学习和实践,我们可以设计出更加智能和高效的路径规划算法,服务...

    MyDubbo:dubbo源码学习笔记

    《MyDubbo:Dubbo源码学习笔记》 在Java开发领域,Dubbo是一个非常知名的分布式服务框架,它由阿里巴巴开源并广泛应用于大型企业系统。本篇笔记将深入探讨Dubbo的核心概念、工作原理以及源码解析,帮助开发者更好地...

    spring学习笔记

    Spring框架是Java开发中不可或缺的一部分,它以IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)为...学习和理解Spring的这些核心概念,对于提升Java开发技能和优化项目结构至关重要。

    凸优化英文笔记

    - 拓扑和微分:理解凸集的拓扑结构,以及在凸集上的微分概念,如梯度和Hessian矩阵。 - 凸函数的导数与次梯度:了解凸函数的一阶导数和次梯度的性质,以及它们在优化中的作用。 4. **凸优化算法** - 梯度下降法...

    spring第一天课堂笔记

    7. **Java源码的学习价值**:Spring框架的设计精巧、结构清晰,其源代码是Java设计模式的最佳实践之一,对于学习Java技术和设计模式具有极高的参考价值。 #### 四、Spring的体系结构 Spring框架的体系结构主要包括...

    Dubbo视频资料

    1. **服务提供与消费**:Dubbo的核心功能之一是服务提供者(Provider)向服务消费者(Consumer)暴露服务。在视频中,你会了解到如何配置服务接口、实现服务提供方,以及如何在消费者端引用这些服务,实现远程调用。...

    dubbo中间件笔记整理

    在多个服务提供者存在的情况下,Dubbo提供了多种负载均衡策略,如随机、轮询、最少活跃调用量等,确保请求能够均匀地分发到各个服务实例。 5. **容错机制** 针对服务不可用的情况,Dubbo提供了多种容错策略,如...

Global site tag (gtag.js) - Google Analytics