首页 > 其他 > 详细

Hessian实例

时间:2015-06-25 02:09:19      阅读:168      评论:0      收藏:0      [点我收藏+]

1.简介

? ? ?Hessian是一个轻量级的remoting onhttp工具,通过简单的方法提供了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

?

?

? ??

Hessian实例

原文:http://zh-workhard-java.iteye.com/blog/2221652

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!