目前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,一种轻量级的二进制协议,因其高效、简单的特点,在分布式服务中被广泛应用。它允许开发者在HTTP上透明地调用远程方法,就像是本地方法调用一样,极大地提高了开发效率和系统性能。...
本文将深入探讨如何利用Maven这一强大的构建工具来构建一个多模块的Hessian应用。Hessian是一种轻量级的二进制RPC协议,它能够高效地处理远程方法调用,尤其适用于分布式系统中的服务间通信。 首先,让我们了解...
一个简单的Hessian应用可能包括以下部分: 1. **服务端**:定义一个名为`Calculator`的接口,包含`add(int a, int b)`方法。实现`CalculatorImpl`类,并在Servlet容器(如Tomcat)中部署HessianServlet,将`...
Hessian矩阵是图像处理和计算机视觉领域中一个重要的数学工具,尤其在特征检测和结构分析...在深入理解Hessian矩阵及其应用的同时,也需要熟悉图像处理的基本原理和OpenCV库的使用,这样才能更好地实现和优化此类算法。
**Hessian:深入理解与应用** Hessian是一种二进制Web服务协议,它由Caucho Technology公司开发,主要用于提供轻量级、高效的远程方法调用(Remote Method Invocation,RMI)服务。Hessian的目标是简化分布式系统...
本篇将详细探讨Hessian在实战中的应用,特别是如何获取客户端请求的URL以及如何重定向或转发客户端请求。 首先,我们需要了解Hessian的基本原理。Hessian是基于HTTP的,它将Java对象序列化为二进制格式,从而减少...
3. **Python中的Hessian**:Python也有对应的Hessian库,如`pyhessian`,它实现了Hessian协议,使得Python应用能够与Java Hessian服务进行通信。同样,服务端可以通过定义Python函数并包装为Hessian服务,客户端则...
在Spring Web Flow项目中应用Hessian服务,是一个深入整合分布式服务和前端流程管理的重要实践。Spring Web Flow(SWF)是一个强大的MVC框架,用于构建具有复杂导航逻辑的Web应用程序,而Hessian则是一种轻量级的二...
这个压缩包包含了Hessian的多个版本,分别是Hessian3.1.6、Hessian3.2.1以及Hessian4.0.7。每个版本都有其特定的功能改进和优化,了解这些版本的区别和适用场景对于开发者来说至关重要。 Hessian3.1.6是Hessian的一...
本文将深入探讨Hessian在Spring中的应用以及相关研究。 一、Hessian简介 Hessian是一种基于HTTP的二进制协议,它以简洁的二进制格式传输数据,相比于XML-RPC或JSON-RPC等文本协议,Hessian具有更高的传输效率和更快...
在IT领域,尤其是在医学图像分析中,Hessian矩阵是一个重要的数学工具,用于图像特征检测,特别是在血管分割的应用中。本文将深入探讨标题和描述中提到的"基于Hessian矩阵增强的心血管分割"这一主题。 Hessian矩阵...
多尺度是指在不同分辨率下应用Hessian滤波器,这样可以更好地适应图像中的各种尺度特征。在小尺度上,滤波器可以捕获细小的细节;在大尺度上,它可以捕捉更粗大的结构。这样设计的好处是可以同时检测到不同尺寸的...
Hessian是一种二进制Web服务协议,由Caucho Technology公司开发,主要用于提供轻量级、高效的远程方法调用(Remote Method ...通过深入研究源码和利用相关工具,我们可以更好地利用Hessian的优势来优化我们的应用程序。
而 Hessian 是一种轻量级的远程过程调用(RPC)协议,它允许应用程序之间进行高效的二进制通信。 首先,让我们深入理解 SpringMVC。SpringMVC 提供了一个灵活的架构,用于处理 HTTP 请求、路由请求到相应的处理器、...
本知识点主要关注的是在Android平台上,如何使用Hessian进行异步请求访问,以便提高应用程序的性能和用户体验。 Hessian是由Caucho公司开发的一种轻量级、高效的RPC(Remote Procedure Call)协议。它将Java对象...
本文将深入探讨Hessian框架的基础知识,它是一个高效的二进制序列化协议,广泛应用于Java和.NET之间跨语言通信。通过学习Hessian,我们可以更有效地处理数据传输,提高应用性能。 首先,让我们理解什么是序列化。...
Hessian jar包通常包含了实现Hessian协议所需的类库,使得开发者能够在Java应用程序中使用Hessian进行服务调用。 在本例中,提供的"Hessian的jar包.zip"包含了一个名为"hessian的4.0.33.jar"的文件,这是Hessian的...
四、Hessian的优势与应用场景 Hessian的主要优势在于其高效的数据传输和简单易用的API,这使得它在低带宽环境或者对性能要求较高的场景下尤为适用。常见的应用场景包括: 1. 远程服务调用:如分布式系统中的服务间...