Hessian学习笔记之Hessian实例

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

 

 

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值