Spring集成Hessian
2014-06-09 17:26
465 查看
1,Hessian简单介绍:
Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。
2,RMI、Hessian、Burlap、Httpinvoker、WebService,通讯协议的在不同的数据结构和不同数据量时的传输性能比较:
RMI是java语言本身提供的远程通讯协议,稳定高效,是EJB的基础。但它只能用于JAVA程序之间的通讯。
Hessian和Burlap是caucho公司提供的开源协议,基于HTTP传输,服务端不用开防火墙端口。协议的规范公开,可以用于任意语言。
Httpinvoker是SpringFramework提供的远程通讯协议,只能用于JAVA程序间的通讯,且服务端和客户端必须使用SpringFramework。
Web service是连接异构系统或异构语言的首选协议,它使用SOAP形式通讯,可以用于任何语言,目前的许多开发工具对其的支持也很好。
测试结果显示,几种协议的通讯效率依次为:
RMI > Httpinvoker >= Hessian >> Burlap >> web service
RMI不愧是JAVA的首选远程调用协议,非常高效稳定,特别是在大数据量的情况下,与其他通讯协议的差距尤为明显。
HttpInvoker使用java的序列化技术传输对象,与RMI在本质上是一致的。从效率上看,两者也相差无几,HttpInvoker与RMI的传输时间基本持平。
Hessian在传输少量对象时,比RMI还要快速高效,但传输数据结构复杂的对象或大量数据对象时,较RMI要慢20%左右。
Burlap仅在传输1条数据时速度尚可,通常情况下,它的毫时是RMI的3倍。
Web Service的效率低下是众所周知的,平均来看,Web Service的通讯毫时是RMI的10倍。
3,Hessian和Spring的集成示例:
到官网下载Hessian相关资源包:http://hessian.caucho.com/ (注:刚网站可能需要GoAgent来翻墙下载)
点击java到下载页面:
将下载下来的hessian-3.1.6和Spring的jar包放到开发工具lib目录下(本人使用eclipse开发工具)
如下图:
上面坏境搭建好后,下面我们来开始正式进行集成
a) 写需要暴露的Service接口(Hello.java):
d) 配置Web.xml
e) 编写测试类(Client.java)
f) 测试:
将该web工程部署在tomcat上,启动tomcat,然后运行测试类
出现如下结果,则说明集成Hessian成功!
当然,也可以在浏览器中访问Hessian暴露的Hessian Url,如下:
出现405则说明Hessian暴露成功!即完成了Spring和Hessaian的集成!,
Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。
2,RMI、Hessian、Burlap、Httpinvoker、WebService,通讯协议的在不同的数据结构和不同数据量时的传输性能比较:
RMI是java语言本身提供的远程通讯协议,稳定高效,是EJB的基础。但它只能用于JAVA程序之间的通讯。
Hessian和Burlap是caucho公司提供的开源协议,基于HTTP传输,服务端不用开防火墙端口。协议的规范公开,可以用于任意语言。
Httpinvoker是SpringFramework提供的远程通讯协议,只能用于JAVA程序间的通讯,且服务端和客户端必须使用SpringFramework。
Web service是连接异构系统或异构语言的首选协议,它使用SOAP形式通讯,可以用于任何语言,目前的许多开发工具对其的支持也很好。
测试结果显示,几种协议的通讯效率依次为:
RMI > Httpinvoker >= Hessian >> Burlap >> web service
RMI不愧是JAVA的首选远程调用协议,非常高效稳定,特别是在大数据量的情况下,与其他通讯协议的差距尤为明显。
HttpInvoker使用java的序列化技术传输对象,与RMI在本质上是一致的。从效率上看,两者也相差无几,HttpInvoker与RMI的传输时间基本持平。
Hessian在传输少量对象时,比RMI还要快速高效,但传输数据结构复杂的对象或大量数据对象时,较RMI要慢20%左右。
Burlap仅在传输1条数据时速度尚可,通常情况下,它的毫时是RMI的3倍。
Web Service的效率低下是众所周知的,平均来看,Web Service的通讯毫时是RMI的10倍。
3,Hessian和Spring的集成示例:
到官网下载Hessian相关资源包:http://hessian.caucho.com/ (注:刚网站可能需要GoAgent来翻墙下载)
点击java到下载页面:
将下载下来的hessian-3.1.6和Spring的jar包放到开发工具lib目录下(本人使用eclipse开发工具)
如下图:
上面坏境搭建好后,下面我们来开始正式进行集成
a) 写需要暴露的Service接口(Hello.java):
package com.jasun.service; public interface Hello { public String sayHello(String name); }b) 写Service实现类(HelloService.java):
package com.jasun.serviceImp; import com.jasun.service.Hello; public class HelloService implements Hello { @Override public String sayHello(String name) { return "Hello" + name + "!"; } }c) 编写Hessian的配置文件(hessian-service.xml),可以看到该处主要是Spring的Bean注入:
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="defaultHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <bean id="helloService" class="com.jasun.serviceImp.HelloService"/> <bean name="/hello" class="org.springframework.remoting.caucho.HessianServiceExporter"> <property name="service" ref="helloService"/> <property name="serviceInterface" value="com.jasun.service.Hello"/> </bean> </beans>注:将该文件放置到WEB-INF目录下即可。
d) 配置Web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/hessian-servlet.xml</param-value> </context-param> <servlet> <servlet-name>hessian</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>4</load-on-startup> </servlet> <servlet-mapping> <servlet-name>hessian</servlet-name> <url-pattern>/hessian/*</url-pattern> </servlet-mapping> </web-app>
e) 编写测试类(Client.java)
package com.jasun.test; import java.net.MalformedURLException; import com.caucho.hessian.client.HessianProxyFactory; import com.jasun.service.Hello; public class Client { public static void main(String[] args) throws MalformedURLException { String url = "http://localhost:8080/hession_1/hessian/hello"; HessianProxyFactory factory = new HessianProxyFactory(); Hello hello = (Hello) factory.create(Hello.class, url); System.out.println(hello); System.out.println(hello.sayHello("Hessian")); } }
f) 测试:
将该web工程部署在tomcat上,启动tomcat,然后运行测试类
出现如下结果,则说明集成Hessian成功!
当然,也可以在浏览器中访问Hessian暴露的Hessian Url,如下:
出现405则说明Hessian暴露成功!即完成了Spring和Hessaian的集成!,
相关文章推荐
- Hessian与Spring集成
- spring集成hessian简单配置网络整理
- Spring集成Hessian
- Hessian入门(与Spring集成)
- hessian与spring集成,hessian3.2.0升级4.0.7注意事项
- Hessian入门(与Spring集成)
- spring hessian 集成开发
- Hessian入门(与Spring集成)
- spring 集成 Hessian
- Hessian入门(与Spring集成)
- 【解决】spring中集成hessian报异常,ClassNotFoundException:com.caucho.hessian.io.HessianDebugOutputStream
- hessian入门,spring集成
- hessian集成spring注解实现
- 如何在Spring中集成Hessian框架
- Hessian学习之(二):Hessian集成到Spring
- Spring 集成hessian进行接口的暴露和访问
- Spring Struts2 Hessian集成的一个问题
- 如何在Spring中集成Hessian框架
- Hessian使用(与Spring的集成)
- 一篇文章学会spring boot(包括jms和hessian的集成)