`
Everyday都不同
  • 浏览: 723514 次
  • 性别: Icon_minigender_1
  • 来自: 宇宙
社区版块
存档分类
最新评论

使用Hessian来进行远程调用

阅读更多

Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. Spring也对Hessian进行了支持,以下就用一个简单的例子来说明下如何在Spring中使用Hessian吧。

 

Hessian的服务端配置:

在服务端的某个applicationContext-*.xml(命名不限)创建HessianServiceExporter来暴露你的服务接口(接口以及接口实现类略):

 

<!-- RemoteService的Hessian Exporter -->
	<bean name="remoteServiceExporter" class="org.springframework.remoting.caucho.HessianServiceExporter">
		<property name="service" ref="xxxRemoteService" />
		<property name="serviceInterface" value="com.nineclient.talk.service.xxxRemoteService" />

	</bean>

	<!-- 服务接口的实现Bean定义 -->
	<bean id="xxxRemoteService" class="com.nineclient.talk.service.impl.JtalkRemoteServiceImpl" />

 在web.xml中为Exporter定义一个相应的Servlet,目的是为了将这个Exporter映射到一个url地址中,但这个Servlet的名称需和这个Exporter bean的name一样!

 

 

<servlet>
    <servlet-name>remoteServiceExporter</servlet-name>
    <servlet-class>org.springframework.web.context.support.HttpRequestHandlerServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>remoteServiceExporter</servlet-name>
    <url-pattern>/remoting/xxxRemoteservice</url-pattern>
  </servlet-mapping>
   <servlet>

 

 

Hessian客户端的配置:

1)把服务端的接口(实现类不需要)打包成jar给客户端

2)在一个配置文件如config.properties中,配置远程服务的地址,如:

HESSIAN_REMOTESERVICE_URL=http://ip:port/serverName/remoting/xxxRemoteservice

2)不妨写一个工具类来获得远程服务的调用地址

public class RemoteHessianUtil {
	public static HessianProxyFactory factory;
	public static String url;
	static {
		factory = new HessianProxyFactory();
		factory.setOverloadEnabled(true);
		url = PropertyReader.getProperty("HESSIAN_REMOTESERVICE_URL");//读取配置文件属性并把这些属性放入map中过程略。。
	}
	
	public static Object create(Class<?> api, String urlName) {
		try {
			return factory.create(api, urlName);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
	
	//获取远程调用服务的方法
	public static xxxRemoteService getRemoteService() {
		return (xxxRemoteService) RemoteHessianUtil.create(xxxRemoteService.class, url);
	}
	
}

 做完这些,依次启动服务端和客户端,就可以做简单的远程调用了。当服务端接口更新,需要重新打包给客户端。

 

分享到:
评论

相关推荐

    java+hessian 远程调用

    - **文档**:详细说明如何使用提供的源代码和配置来搭建和测试Hessian远程调用系统。 - **示例客户端**:可能有一个简单的Java客户端示例,演示如何连接到服务端并调用远程方法。 了解和掌握Java Hessian远程调用...

    hessian实现远程调用

    下面我们将详细介绍Hessian的实现原理以及如何在实际开发中运用它进行远程调用。 首先,Hessian基于HTTP协议,使用二进制序列化来减少数据传输量,从而提高通信效率。它支持Java、C++等多种语言,使得跨语言的远程...

    Hessian远程调用框架学习一

    总的来说,Hessian远程调用框架在Java分布式系统中提供了一种高效、简便的通信方式,尤其适合那些对性能和简洁性有较高要求的项目。了解并掌握Hessian的使用,对于提升你的Java开发技能和解决实际问题的能力大有裨益...

    spring整合hessian进行远程通讯

    标题中的“spring整合hessian进行远程通讯”是指在Spring框架中使用Hessian库来实现远程过程调用(RPC)。这是一个常见的技术组合,用于构建分布式系统,使得应用组件之间可以跨网络进行高效通信。 Hessian是一种二...

    Hessian远程调用RPC最简单demo

    本教程将详细介绍"Hessian远程调用RPC最简单demo",包括服务器端服务发布和客户端服务调用的实现,以及所需资源。 首先,我们来看一下`hessian-4.0.7.jar`这个文件。这是Hessian库的核心组件,包含了实现Hessian...

    hessian框架应用,实现远程调用,分布式开发

    它主要应用于分布式系统中,允许应用程序通过HTTP协议进行高效、透明的远程调用,降低了分布式系统之间的通信复杂性。Hessian支持序列化Java对象,使得远程调用如同本地调用一样便捷,极大地提高了开发效率。 一、...

    Hessian Binary Web Service Protocol远程接口调用入门Demo

    本教程将通过一个入门Demo来介绍如何使用Hessian进行远程接口调用。 首先,让我们理解Hessian的优势。与XML-RPC相比,Hessian使用二进制编码,因此在网络传输时占用的带宽更少,解析速度更快。此外,Hessian支持...

    远程调用服务框架

    远程调用服务框架是软件开发中的一个重要组成部分,它允许不同系统、不同网络环境下的应用程序之间进行通信,实现功能的解耦合和分布式系统的构建。在Java世界中,Spring框架提供了强大的支持来实现这一目标。本篇...

    spring远程调用简单实例

    远程调用是指应用程序的不同组件或服务之间,通过网络进行通信的一种方式。Spring支持多种远程调用协议,如RMI(Remote Method Invocation)、Hessian、 Burlap以及HTTP Invoker等。这些协议允许我们跨越网络边界,...

    hession远程调用分享

    《Hessian远程调用技术详解》 在分布式系统中,远程调用是常见的通信方式,它使得服务可以跨越网络边界,实现组件之间的交互。Hessian,由Caucho公司开发,是一种高效的二进制RPC(Remote Procedure Call)协议,常...

    使用hessian进行服务器-客户端通讯

    Hessian是一种二进制Web服务协议,它提供了一种高效的RPC(远程过程调用)机制,使得服务器和客户端之间能够进行快速、简单的通信。...通过理解和实践这个案例,你将能够熟练地在Java项目中使用Hessian进行远程调用。

    hessian使用小例子

    总的来说,Hessian是一种强大的工具,特别适用于需要快速、低开销的Java远程调用场景。通过这个简单的示例,我们可以看到如何在Java应用中集成和使用Hessian进行远程服务调用。在实际项目中,Hessian还可以与其他...

    用hessian c#桌面程序调用J2EE后台服务

    标题中的“用Hessian C#桌面程序调用J2EE后台服务”涉及到的是跨平台通信技术,特别是使用Hessian协议来实现C#客户端与Java(J2EE)服务器之间的交互。Hessian是一种二进制的远程过程调用(RPC)协议,由BEA Systems...

    rpc远程调用使用说明&源码

    3. **服务消费者(ServiceConsumer)**:从服务注册中心获取服务接口的引用,实现远程调用。 4. **代理类(Proxy Class)**:动态生成的类,实现了服务接口,内部调用RPC框架的调用逻辑。 5. **调用处理(Invocation...

    hessian示例远程轻量级传输

    4. **透明性**:Hessian允许远程调用像本地方法调用一样,提高了开发者的生产力。 ### 使用场景 Hessian适用于以下场景: 1. **微服务通信**:在微服务架构中,服务间需要频繁进行轻量级的通信,Hessian可以提供...

    springMVC hessian

    总的来说,这个项目展示了如何将 SpringMVC 的强大 MVC 模式与 Hessian 的高效远程调用相结合,实现了一种分布式服务架构。开发者可以通过阅读 Readme 文件,了解具体的配置和使用方法,从而在自己的项目中应用这一...

    android端使用hessian跟web服务器通讯

    在Android应用开发中,与Web服务器进行通讯是常见的需求,Hessian是一种二进制协议,它使得Java和Java、Java和其他语言(如Python、C++)之间的远程调用变得高效且简便。本教程将深入探讨如何在Android端利用Hessian...

    轻量级远程服务调用Hessian的入门实例和与Spring整合的实例.zip

    首先,我们需要定义一个服务接口,例如`HelloService`,包含一个或多个方法,这些方法将被远程调用。然后,我们需要实现这个接口并部署为一个Hessian服务。在服务器端,通过HessianServlet来暴露这个服务,客户端则...

Global site tag (gtag.js) - Google Analytics