`
sunney2010
  • 浏览: 58770 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Hessian 演示例子

阅读更多

 Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据

  在进行基于Hessian的项目开发时,应当注意以下几点:

  ▲JAVA服务器端必须具备以下几点:

  ·包含Hessian的jar包

  ·设计一个接口,用来给客户端调用

  ·实现该接口的功能

  ·配置web.xml,配好相应的servlet

  ·对象必须实现Serializable 接口

  ·对于复杂对像可以使用Map的方法传递

  ▲客户端必须具备以下几点:

  ·java客户端包含Hessian.jar的包。C#中引用hessianCSharp.dll

  ·具有和服务器端结构一样的接口。包括命名空间都最好一样

  ·利用HessianProxyFactory调用远程接口。

 

一、服务器(service)

1、实体类

 1 public class CarDO implements java.io.Serializable{
 2 
 3     /**
 4      * 一定要实现Serializable因为要远程传输
 5      */
 6     private static final long serialVersionUID = 1L;
 7 
 8     String color;
 9 
10     String length;
11 
12     String name;
13 
14     public String getColor() {
15         return this.color;
16     }
17     public void setColor(String color) {
18         this.color = color;
19     }
20     public String getLength() {
21         return this.length;
22     }
23     public void setLength(String length) {
24         this.length = length;
25     }
26     public String getName() {
27         return this.name;
28     }
29     public void setName(String name) {
30         this.name = name;
31     }

 

 2、接口类

 1 
 2 import com.hessian.server.javabean.CarDO;
 3 /**
 4  * @author sunney
 5  *
 6  */
 7 public interface IHello {
 8     
 9     /**
10      * 返回字符串
11      * @return
12      */
13     String sayHello();
14     
15     /**
16      * 返回一个实体
17      * @param carDO
18      * @return
19      */
20     CarDO searchCarInfo(CarDO carDO);
21 }
22 

 

 3、实现类

 

 1 
 2 import com.caucho.hessian.server.HessianServlet;
 3 import com.hessian.server.IHello;
 4 import com.hessian.server.javabean.CarDO;
 5 
 6 public class Hello extends HessianServlet implements IHello{
 7     /**
 8      * 
 9      */
10     private static final long serialVersionUID = 1L;
11 
12     public String sayHello(){
13         return "Hello world,zoomhoo again!";
14     }
15 
16     public CarDO searchCarInfo(CarDO carDO) {   
17         System.out.println("server Color:"+carDO.getColor());
18         System.out.println("server Name:"+carDO.getName());
19         System.out.println("server Length:"+carDO.getLength());
20         carDO.setColor("blue");
21         carDO.setName("baoma"); 
22         carDO.setLength("1000000");
23        return carDO;
24     }
25 
26     
27 }

 

 

 4、web.xml

  1 <?xml version="1.0" encoding="ISO-8859-1"?>

 2 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
 5     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 6 
 7         <context-param>
 8             <param-name>contextConfigLocation</param-name>
 9             <param-value>/WEB-INF/remoting-servlet.xml</param-value>
10         </context-param>
11 
12          <listener>
13             <listener-class> 
14                 org.springframework.web.context.ContextLoaderListener</listener-class>
15         </listener>
16 
17         <servlet>
18             <servlet-name>remoting</servlet-name>
19 
20             <servlet-class> 
21                 org.springframework.web.servlet.DispatcherServlet</servlet-class>
22             <load-on-startup>1</load-on-startup>
23         </servlet>
24 
25         <servlet-mapping>
26             <servlet-name>remoting</servlet-name>
27             <url-pattern>/remoting/*</url-pattern>
28         </servlet-mapping>
29             
30     <servlet>
31         <servlet-name>Hello</servlet-name>
32         <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
33         <init-param>
34             <param-name>home-class</param-name>
35             <param-value>com.hessian.server.impl.Hello</param-value>
36         </init-param>
37         <init-param>
38             <param-name>home-api</param-name>
39             <param-value>com.hessian.server.IHello</param-value>
40         </init-param>
41         <load-on-startup>1</load-on-startup>
42     </servlet>
43     <servlet-mapping>
44         <servlet-name>Hello</servlet-name>
45         <url-pattern>/Hello</url-pattern>
46     </servlet-mapping>
47     </web-app>

 

5、remoting-servlet.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 
 3     "http://www.springframework.org/dtd/spring-beans.dtd">
 4 <beans>
 5     <!--  定义普通bean实例--> 
 6     <bean id="hello" class="com.hessian.server.impl.Hello"/>
 7     <!--  使用HessianServiceExporter 将普通bean导出成Hessian服务-->
 8     <bean name="/HessianRemoting" 
 9         class="org.springframework.remoting.caucho.HessianServiceExporter">
10         <!--  需要导出的目标bean-->
11         <property name="service" ref="hello"/>
12         <!--  Hessian服务的接口-->                 
13         <property name="serviceInterface" value="com.hessian.server.IHello"/>
14     </bean>
15 </beans>

 

 

 二、客户端(clent)

1、客户端也要有对应该的实体类,最好包的路径要一样。如: com.hessian.server.javabean.CarDO

    以上存在不在贴代码。

2、接口

1 import com.hessian.server.javabean.CarDO;
2 /**
3  * @author 
4  * 
5  */
6 public interface IHello {  
7     String sayHello();
8     CarDO searchCarInfo(CarDO carDO);
9 }

 

 3、实现类

 1 
 2 package com.hessian.client;
 3 
 4 import java.net.MalformedURLException;
 5 
 6 import com.caucho.hessian.client.HessianConnectionException;
 7 import com.caucho.hessian.client.HessianProxyFactory;
 8 import com.hessian.server.IHello;
 9 import com.hessian.server.javabean.CarDO;
10 
11 /**
12  * @author 
13  * 
14  */
15 public class simpleTest {
16 
17     /**
18      * @param args
19      */
20     public static void main(String[] args) {
21         //String url = "http://192.168.1.10:8080/hessiantest/Hello";
22          String url = "http://localhost:8080/hessian-server/Hello";
23         HessianProxyFactory factory = new HessianProxyFactory();
24       try</sp
分享到:
评论
1 楼 huyuran 2012-07-04  
例子很好 O(∩_∩)O谢谢 

相关推荐

    hessian demo例子教程

    hessian demo 例子 教程 看我blog http://blog.csdn.net/zfrong/archive/2009/12/29/5099222.aspx http://blog.csdn.net/zfrong/archive/2009/12/27/5083943.aspx

    spring 集成 hessian例子

    Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。参考文档地址...

    Hessian例子.rar

    Hessian例子.rarHessian例子.rarHessian例子.rarHessian例子.rar

    Hessian 学习 例子 实例

    NULL 博文链接:https://otom31.iteye.com/blog/1175539

    Hessian例子.doc

    Hessian例子,如何配置Hessian

    hessian使用小例子

    hessian关于java使用的一个小例子

    hessian入门小例子

    这个hessian例子,包括一个service,一个client,大家只需要启动tomcat,并运行BasicClient这个类,即可

    hessian例子

    hessian例子

    hessian 使用例子

    演示例子分为三部分:Client 、Server、Skeleton; 其中,Client 是通过Hessian调用远程服务的客户端;Server是通过Hessian对外提供服务的服务端;Skeleton 是接口桥梁。 ...

    Hessian 例子 (包括 RMI 例子)

    NULL 博文链接:https://7wolfs.iteye.com/blog/916844

    C#中Hessian的使用例子

    Hessian(C#)介绍及使用说明Hessian(C#)介绍及使用说明

    Hessian的小例子

    Hessian的小例子,包含两个工程:客户端和服务器端。直接导入工程,包都是全的。Enjoy!

    基于WebService的Hessian例子教程

    基于WebService的Hessian例子,有代码,可以直接跑起来,一针见血的例子,相当 简单,有服务器端与客户端两个例子,相当好理解

    java,apache dubbo rest和hessian协议例子

    需要安装zookeeper,默认端口,即可。 provider:运行RestProvider的main方法即可。 consumer:运行RestConsumer的main方法,在控制台,回车即可发一笔请求。

    Hessian例子

    一个基本的Hessian调用接头例子

    hessian 实例

    远程调用方法就是HttpInvoker:他也是将参数和返回值通过Java的序列化机制进行编组和反编组,它具有RMI的支持所有可序列化对象的...试使用Http协议传输二进制流的,同时又具有Hessian、Burlap(传输xml文本)的优点。

    hessian学习实例

    hessian学习实例,hessian框架例子,与Spring集成。包括了server端和client端

    hessian案例,hessian案例

    该案例有hessian java python,该案例有hessian java python,该案例有hessian java python

    Hessian多个版本打包下载

    Hessian多个版本下载,包括Hessian3.1.6,Hessian3.2.1,Hessian4.0.7

    hessian资料3

    hessian资料3hessian资料3hessian资料3hessian资料3hessian资料3

Global site tag (gtag.js) - Google Analytics