`
richie.lee
  • 浏览: 29252 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

hessian应用

阅读更多

目前hessian算一个比较热的应用。利用它可以很方便的实现远程服务。目前,开发的系统(项目)多处利用了hessian。一个简单的场景是,应用A通过hessian调用应用B的服务,然后B的服务请求公司对外统一的gateway进行请求转发,把请求分发到外部合作公司。hessian还可以利用多线程实现数据同步(或者说是数据推送)。下面,给出一个简单例子,说明hessian的用法。具体hessian适合用在哪些场景,则看看之前发表的 远程服务 相关的文章。

 

首先,简简单单的利用sevlet就OK。但需要准备好hessian.*.*.jar,spring.jar , common.logging和jdk等

 

(1)编写服务端

声明接口和方法:

 

public interface RemoteHessianService {

 String sayHello(String name);

}
 

 

实现接口:

 

public class RemoteHessianServiceImpl implements RemoteHessianService {

public String sayHello(String name) {
        return "hello " + name

}

}


 

配置web.xml

 

<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app> 
<!--  hessian 服务 	-->
	<servlet>
		<servlet-name>remote</servlet-name>
		<servlet-class>
			org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
<!--  hessian 服务 	-->
	<servlet-mapping>
		<servlet-name>remote</servlet-name>
		<url-pattern>/remote/*</url-pattern>
	</servlet-mapping>
</web-app> 

 在WEB-INFO下面新增remote-servlet.xml,配置其内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="remoteHessian"
		class="com.myCompany.crm.remote.RemoteHessianServiceImpl">
	</bean>
	<bean name="/remoteHessianService"
		class="org.springframework.remoting.caucho.HessianServiceExporter">
		<property name="service">
			<ref bean="remoteHessian" />
		</property>
		<property name="serviceInterface">
			<value>
				com.myCompany.service.interfaces.RemoteHessianService
			</value>
		</property>
	</bean>
</beans>

 上面的配置主要是完成了servlet的名称与URL的映射配置,以及利用spring配置初始化bean而已。

 

 

到此,启动利用JBOSS启动web应用,服务端已经到此OK。

 

 

(2)编写客户端:

 

纯粹的利用JDK,而不依赖spring的客户端代码如下:

public class Say {

    /**
     * @param args
     */
    public static void main(String[] args) {  
com.caucho.hessian.client.HessianProxyFactory proxyFactory = new
         com.caucho.hessian.client.HessianProxyFactory();
        
         RemoteHessianService service = null;
         try {
         service = (RemoteHessianService) proxyFactory.create(RemoteHessianService.class,
         "http://localhost:jobss_port/remote/remoteHessianService");
         } catch (MalformedURLException e) {      
         e.printStackTrace();//no recommended
         }
        
         if (service != null) {
                     System.out.println(service.sayHello("hessian"));
         }
}

 编译运行客户端吧,应该可以看到hell hessian的输出了吧。那就大功告成!

 

再利用 spring集成一下客户端吧。

 

增加一个beans-config.xml的配置在工程目录下:

<?xml version="1.0" encoding="GBK" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
 <beans>
 	<bean name = "hessianService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
     <property name="serviceUrl">  
        <value>http://localhost:jboss_port/remote/remoteHessianService</value>  
    </property>  
    <property name="serviceInterface">  
        <value>com.myCompany.service.interfaces.RemoteHessianService</value>  
    </property>  
    </bean>  

</beans>    

 接着,main函数改成如下:

 

public class Say {

    /**
     * @param args
     */
    public static void main(String[] args) {
        
        ApplicationContext context = new FileSystemXmlApplicationContext("beans-config.xml");
      RemoteHessianService service = (RemoteHessianService) context.getBean("hessianService");

        System.out.println(service.sayHello("richie"));
    }

}

 编译运行就OK拉。。。一个简单的例子就到此结束。

 

注意,访问端口一定要使用jboss或者tomcat之类的端口,不可以使用apache等端口。

分享到:
评论

相关推荐

    Hessian应用

    《Hessian应用详解》 Hessian,一种轻量级的二进制协议,因其高效、简单的特点,在分布式服务中被广泛应用。它允许开发者在HTTP上透明地调用远程方法,就像是本地方法调用一样,极大地提高了开发效率和系统性能。...

    利用Maven构建多模块的Hessian应用

    本文将深入探讨如何利用Maven这一强大的构建工具来构建一个多模块的Hessian应用。Hessian是一种轻量级的二进制RPC协议,它能够高效地处理远程方法调用,尤其适用于分布式系统中的服务间通信。 首先,让我们了解...

    hessian小实例

    一个简单的Hessian应用可能包括以下部分: 1. **服务端**:定义一个名为`Calculator`的接口,包含`add(int a, int b)`方法。实现`CalculatorImpl`类,并在Servlet容器(如Tomcat)中部署HessianServlet,将`...

    Hessian矩阵以及在血管增强中的应用—OpenCV3和c++版本代码工程

    Hessian矩阵是图像处理和计算机视觉领域中一个重要的数学工具,尤其在特征检测和结构分析...在深入理解Hessian矩阵及其应用的同时,也需要熟悉图像处理的基本原理和OpenCV库的使用,这样才能更好地实现和优化此类算法。

    Hessian

    **Hessian:深入理解与应用** Hessian是一种二进制Web服务协议,它由Caucho Technology公司开发,主要用于提供轻量级、高效的远程方法调用(Remote Method Invocation,RMI)服务。Hessian的目标是简化分布式系统...

    Hessian实战应用之获取客户端请求URL和重新转发客户端请求

    本篇将详细探讨Hessian在实战中的应用,特别是如何获取客户端请求的URL以及如何重定向或转发客户端请求。 首先,我们需要了解Hessian的基本原理。Hessian是基于HTTP的,它将Java对象序列化为二进制格式,从而减少...

    hessian案例,hessian案例

    3. **Python中的Hessian**:Python也有对应的Hessian库,如`pyhessian`,它实现了Hessian协议,使得Python应用能够与Java Hessian服务进行通信。同样,服务端可以通过定义Python函数并包装为Hessian服务,客户端则...

    在 Spring Web Flow 项目中应用 Hessian 服务

    在Spring Web Flow项目中应用Hessian服务,是一个深入整合分布式服务和前端流程管理的重要实践。Spring Web Flow(SWF)是一个强大的MVC框架,用于构建具有复杂导航逻辑的Web应用程序,而Hessian则是一种轻量级的二...

    Hessian多个版本打包下载

    这个压缩包包含了Hessian的多个版本,分别是Hessian3.1.6、Hessian3.2.1以及Hessian4.0.7。每个版本都有其特定的功能改进和优化,了解这些版本的区别和适用场景对于开发者来说至关重要。 Hessian3.1.6是Hessian的一...

    Hessian(Spring集成的)的应用与研究

    本文将深入探讨Hessian在Spring中的应用以及相关研究。 一、Hessian简介 Hessian是一种基于HTTP的二进制协议,它以简洁的二进制格式传输数据,相比于XML-RPC或JSON-RPC等文本协议,Hessian具有更高的传输效率和更快...

    基于Hessian矩阵增强的心血管分割_hessian_hessian血管_hessian血管分割_血管分割_Hessian矩阵

    在IT领域,尤其是在医学图像分析中,Hessian矩阵是一个重要的数学工具,用于图像特征检测,特别是在血管分割的应用中。本文将深入探讨标题和描述中提到的"基于Hessian矩阵增强的心血管分割"这一主题。 Hessian矩阵...

    多尺度hessian滤波器图像增强

    多尺度是指在不同分辨率下应用Hessian滤波器,这样可以更好地适应图像中的各种尺度特征。在小尺度上,滤波器可以捕获细小的细节;在大尺度上,它可以捕捉更粗大的结构。这样设计的好处是可以同时检测到不同尺寸的...

    hessian

    Hessian是一种二进制Web服务协议,由Caucho Technology公司开发,主要用于提供轻量级、高效的远程方法调用(Remote Method ...通过深入研究源码和利用相关工具,我们可以更好地利用Hessian的优势来优化我们的应用程序。

    springMVC hessian

    而 Hessian 是一种轻量级的远程过程调用(RPC)协议,它允许应用程序之间进行高效的二进制通信。 首先,让我们深入理解 SpringMVC。SpringMVC 提供了一个灵活的架构,用于处理 HTTP 请求、路由请求到相应的处理器、...

    Hessian异步请求访问包

    本知识点主要关注的是在Android平台上,如何使用Hessian进行异步请求访问,以便提高应用程序的性能和用户体验。 Hessian是由Caucho公司开发的一种轻量级、高效的RPC(Remote Procedure Call)协议。它将Java对象...

    hessian学习基础篇——序列化和反序列化

    本文将深入探讨Hessian框架的基础知识,它是一个高效的二进制序列化协议,广泛应用于Java和.NET之间跨语言通信。通过学习Hessian,我们可以更有效地处理数据传输,提高应用性能。 首先,让我们理解什么是序列化。...

    Hessian的jar包.zip

    Hessian jar包通常包含了实现Hessian协议所需的类库,使得开发者能够在Java应用程序中使用Hessian进行服务调用。 在本例中,提供的"Hessian的jar包.zip"包含了一个名为"hessian的4.0.33.jar"的文件,这是Hessian的...

    hessian-4.0.33.jar

    四、Hessian的优势与应用场景 Hessian的主要优势在于其高效的数据传输和简单易用的API,这使得它在低带宽环境或者对性能要求较高的场景下尤为适用。常见的应用场景包括: 1. 远程服务调用:如分布式系统中的服务间...

Global site tag (gtag.js) - Google Analytics