Hessian:采用的是二进制RPC协议,因为采用的是二进制协议。
Hessian通过其自定义的串行化机制将请求信息进行序列化,产生二进制流,基于Http协议进行传输,
响应端根据Hessian提供的API来接收请求,Hessian根据其私有的串行化机制来将请求信息进行反序列化,
传递给使用者时已是相应的请求信息对象了。
Spring的hessian远程调用
客户端:
<bean id="testHessianServiceClient"
class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
<!--访问服务端的路径-->
<property name="serviceUrl">
<value>
${client.remote.url}/callClientHessian
</value>
</property>
<!--是否允许方法重载,默认为false-->
<property name="overloadEnabled" value="true"></property>
<!--服务端接口-->
<property name="serviceInterface">
<value>com.test.hessian.HessianService</value>
</property>
</bean>
serviceInterface 是RemoteAccessor抽象类的属性
serviceUrl 是UrlBasedRemoteAccessor抽象类的属性
UrlBasedRemoteAccessor抽象类继承RemoteAccessor抽象类
服务端:
<bean id="service" class="com.test.hessian.TestService" />
<bean name="/callClientHessian" class="org.springframework.remoting.caucho.HessianServiceExporter">
<property name="service" ref="service" />
<property name="serviceInterface">
<value>com.test.hessian.HessianService</value>
</property>
</bean>
service,serviceInterface都是RemoteExporter抽象类的属性
web.xml中配置
<servlet>
<servlet-name>spring-remote</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring-remote</servlet-name>
<url-pattern>/remote/*</url-pattern>
</servlet-mapping>
注意:在使用hessian的时候遇到一个问题,就是在客户端不能有与服务端接口名称相同的接口,否则客户端就直接找客户端的接口了,而不找远程的接口
备注:相关的jar包。commons-logging-1.1.1.jar,hessian-3.2.0.jar,log4j-1.2.9.jar,
spring.jar spring-web.jar spring-webmvc.jar
hessian就像是远程注入,服务端创建服务,客户端调用
分享到:
相关推荐
在IT行业中,Spring框架是Java开发中的一个核心组件,它为构建高质量的、松散耦合的、可测试的应用程序提供了强大的支持...在实际应用中,Spring远程调用可以作为一个强大的工具,帮助我们构建可扩展、灵活的服务架构。
在Spring框架中集成Hessian是为了...总的来说,Spring与Hessian的集成提供了便捷的远程调用方案,但需要注意性能优化、安全性以及故障排查。通过深入学习和实践,我们可以更好地利用Hessian来构建高性能的分布式系统。
Hessian提供了高效的二进制RPC协议,使得远程调用变得简单而快速。 **Hessian的基本原理** Hessian基于HTTP协议,它将Java对象转换为高效的二进制格式,以减少网络传输的数据量。它同时支持服务端和客户端之间的...
首先,我们需要定义一个服务接口,例如`HelloService`,包含一个或多个方法,这些方法将被远程调用。然后,我们需要实现这个接口并部署为一个Hessian服务。在服务器端,通过HessianServlet来暴露这个服务,客户端则...
标题中的“spring整合hessian进行远程通讯”是指在Spring框架中使用Hessian库来实现远程过程调用(RPC)。这是一个常见的技术组合,用于构建分布式系统,使得应用组件之间可以跨网络进行高效通信。 Hessian是一种二...
Hessian远程调用框架是基于Java的轻量级RPC(Remote Procedure Call)解决方案,它允许开发者在分布式系统中实现高效、便捷的跨网络对象方法调用。本教程将引导你入门Hessian,通过一个简单的JAVA demo来理解其工作...
3. Spring4的AOP概念,虽然在远程调用中可能不是直接应用,但理解AOP可以帮助设计更灵活的服务。 4. Servlet容器(如Tomcat)的工作原理,因为Hessian服务通常以Servlet的形式部署。 5. HTTP协议基础,理解请求和...
例如,通过缓存策略可以减少不必要的远程调用;使用Hessian的版本机制,可以兼容服务的升级;结合负载均衡器,可以将请求分发到多个Hessian服务实例,提高系统的可用性和可扩展性。 综上所述,将Hessian服务应用于...
Spring通过HessianProtocolFactoryBean实现了Hessian服务的消费和发布,使得远程调用更加高效便捷。 4. **HTTP Invoker**:HTTP Invoker是Spring为Java对象提供的另一种远程调用方案,它基于HTTP协议,但提供了类似...
Hessian协议支持多种数据类型,并且能够自动处理Java对象的序列化和反序列化,使得远程调用如同本地调用一样便捷。 Spring集成Hessian的过程主要包括以下几个步骤: 1. **定义服务接口**:首先,我们需要创建一个...
Hessian4相对于其他远程调用方案,其优点在于它提供了良好的性能和低开销,因为它是基于二进制的,而非XML或JSON。然而,它也有一些限制,例如不支持所有Java类型,而且由于其二进制格式,调试和跨语言支持可能较为...
在Spring中,Hessian通常用来实现远程服务调用。通过AOP,我们可以对Hessian服务进行拦截,添加如日志、性能监控等额外功能。以下是一个基本的步骤: 1. **创建Hessian服务**:首先,我们需要定义一个服务接口和其...
在Spring框架中,服务的暴露和消费可以通过Spring的`<bean>`标签进行配置,而整合Hessian,我们将利用Spring的`<bean>`标签和Hessian的`hessian-proxy-factory-bean`来实现。 **Hessian服务端创建** 1. 引入...
1. **Hessian库**:这是实现Hessian RPC的基础,包含了序列化和反序列化的类以及远程调用的相关接口。主要的jar包有`hessian.jar`,它提供了Hessian协议的实现。 2. **Spring库**:Spring的核心库,如`spring-...
综上所述,"Hessian与Spring整合"的核心是利用Spring的管理能力,结合Hessian的高效远程调用特性,构建可扩展、易于管理和维护的分布式服务系统。通过这种方式,开发者可以专注于业务逻辑,而无需过于关注底层通信...
6. 运行并测试服务,确保远程调用的正确性。 通过这种整合,开发者可以享受到Spring的灵活性和Hessian的高效网络通信,从而构建出高性能、可维护的分布式系统。在实际项目中,这种整合可以极大地提高开发效率和系统...