试着写了一个Hessian的例子,是参考caucho官网上的一个example,很简单,也没什么实际的意义,但足以领会Hessian的用法。
1、建立一个Remote Interface
package com.hessian.test;
public interface MathService {
public int add(int a, int b);
}
2、Service Implementation
package com.hessian.test;
import com.caucho.hessian.server.HessianServlet;
public class HessianMathService extends HessianServlet
implements MathService {
public int add(int a, int b){
return a + b;
}
}
官网上的例子是没有实现MathService接口的,而且也能运行成功,但我觉得有点不合逻辑,不应该将该实现类作为MathService接口暴露给client端。
3、web.xml
<servlet>
<servlet-name>math</servlet-name>
<servlet-class>com.hessian.test.HessianMathService</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>math</servlet-name>
<url-pattern>/hessian/math</url-pattern>
</servlet-mapping>
4、Java client
public class HessianClientTest {
public static void main(String[] args){
String url = "http://localhost:8080/hessiantest/hessian/math";
HessianProxyFactory factory = new HessianProxyFactory();
MathService math = null;
try {
math = (MathService)factory.create(MathService.class, url);
} catch (MalformedURLException e) {
System.out.println("occur exception: " + e);
}
System.out.println("3 + 2 = " + math.add(3, 2));
}
}
使用java实现的client,通过HessianProxyFactory的create即可获取到服务接口。
5、python client
from hessianlib import Hessian
url = "http://localhost:8080/hessiantest/hessian/math"
proxy = Hessian(url)
print "2 + 3 =", proxy.add(2, 3)
使用python实现的client,需加入hessianlib.py。
以上就是一个完整的Hessian实现。
Spring也提供了对Hessian的集成,若使用spring,server端的service实现类则不需实现HessianServlet,使用Spring的DispatcherServlet来配置一个Servlet暴露你的服务。
web.xml
<servlet>
<servlet-name>remote</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>remote</servlet-name>
<url-pattern>/remote/*</url-pattern>
</servlet-mapping>
还需要在 WEB-INF 目录里创建一个名为 remote-servlet.xml(remote为你配置的servlet名)的应用上下文。
remote-servlet.xml
<bean id="mathService" class=" com.hessian.test.HessianMathService">
</bean>
<bean name="/math"
class="org.springframework.remoting.caucho.HessianServiceExporter">
<property name="service" ref=" mathService "/>
<property name="serviceInterface" value=" com.hessian.test.MathService "/>
</bean>
server端做以上操作即可。
client端可以延用之前的操作,若使用spring则可通过 HessianProxyFactoryBean在客户端连接服务,在spring的配置中加入:
<bean class="com.hessian.test.HessianClientTest">
<property name="mathService" ref="mathService"/>
</bean>
<bean id=" mathService "
class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
<property name="serviceUrl"
value="http://remotehost:8080/hessiantest/remote/math"/>
<property name="serviceInterface" value="com.hessian.test.MathService"/>
</bean>
加入以上的配置后,就可像使用其他的bean一样去操作了。原来实现一个webservice是可以这么简单的。
分享到:
相关推荐
总的来说,Flex中的Hessian实例涉及到了客户端与服务器之间的高效通信、ActionScript与Java的互操作、数据传输优化,以及图表组件的使用等多个方面,是Flex开发中的重要技能。深入理解和实践这些知识点,将有助于...
在这个“Hessian实例”中,我们可以找到Hessian在实际应用中的具体示例和相关库文件。 标题提及的“Hessian实例下载”意味着这个压缩包包含了使用Hessian协议的示例代码和必要的库文件,方便开发者快速理解和学习...
Hessian是一种高效的二进制RPC(Remote Procedure Call)协议,它比WebService更为简洁和快速。Hessian基于二进制格式,特别适合传输二进制数据,减少了网络传输的数据量,从而提高了通信效率。它通常被应用于Web...
远程调用方法就是HttpInvoker:他也是将参数和返回值通过Java的序列化机制进行编组和反编组,它具有RMI的支持所有可序列化对象的...试使用Http协议传输二进制流的,同时又具有Hessian、Burlap(传输xml文本)的优点。
在IT行业中,Hessian是一种二进制序列化协议,它被广泛用于远程方法调用(RMI)和Web服务中,以提高数据传输效率。...在提供的链接中,博主otom31分享了一个具体的Hessian实例,可以作为学习和实践的起点。
3. 在客户端,我们需要创建一个HessianProxyFactory实例来获取服务的代理对象,然后就可以调用远程方法了: ```java import com.caucho.hessian.client.HessianProxyFactory; public class Client { public ...
Hessian工程实例主要涉及到的是Java服务端与客户端之间的高效远程通信技术。Hessian是由Caucho Technology开发的一种二进制RPC(Remote Procedure Call)协议,它允许Java对象以高效的二进制格式在网络间进行传输,...
在这个“hessian学习实例”中,我们将深入探讨Hessian框架的使用,特别是如何将其与Spring框架集成,以及如何构建server端和client端。 首先,让我们理解Hessian的工作原理。Hessian基于HTTP协议,它将Java对象序列...
这里我们提供了一个使用Hessian 4.0.37的简单实例,包括服务器端和客户端的创建。 #### 服务器端(Server) 首先,定义一个服务接口和其实现: ```java public interface HelloWorldService { String sayHello...
在“hessian简单实例”中,我们有两个关键部分:`hessian-server`和`hessian-client`。`hessian-server`是服务端程序,它实现了我们需要暴露给客户端调用的方法;而`hessian-client`则是客户端程序,它负责连接到...
Flex-Hessian-Java实例是一个关于使用Flex客户端与Java服务器之间进行高效远程调用的实践案例。这个压缩包包含了实现这一技术所需的关键组件和文件。Flex是Adobe开发的一种开放源码的富互联网应用(RIA)开发框架,...
Hessian是一种高效的二进制RPC(远程过程调用)协议,它被广泛应用于分布式系统中,以实现轻量级的服务间通信。Hessian提供了一种简单、快速的方式将Java对象序列化为字节流,然后在服务端和客户端之间进行传输。...
这是一个Hessian入门学习的实例,程序包是一个web工程,使用intellij idea + Maven开发,其中通过两个方式展示了使用Hessian实现RMI的原理,一个是访问jsp页面,一个是在代码中手工创建client。对于Hessian Servlet...
本实例重点探讨的是基于Spring框架和Hessian协议的Web Service实现,这是一种轻量级、高效的远程调用解决方案。 首先,我们要理解Spring框架。Spring是Java领域的一个核心框架,它提供了全面的编程和配置模型,用于...
这个"**hessian入门实例**"旨在帮助初学者快速理解并应用Hessian技术,通过导入到MyEclipse这样的集成开发环境中,可以直接运行示例代码,从而直观地了解Hessian的工作原理。 首先,我们要理解什么是RPC。RPC允许一...
这个实例教程对于新手来说,是一个很好的起点,能够帮助你快速理解和实践Hessian的基本用法。在实际项目中,你还可以根据需要对安全性、性能等方面进行优化,比如添加认证机制、调整序列化策略等。
在"Spring MVC Hessian Maven简单实例"中,我们将探讨如何将这三个技术结合在一起,以实现一个远程服务调用的解决方案。 首先,我们需要创建一个Maven项目,配置pom.xml文件来管理Spring MVC、Hessian和其它相关...
这个压缩包文件包含了关于Hessian的入门实例以及如何将其与Spring框架整合的教程。 一、Hessian入门实例 Hessian的入门实例主要展示了如何创建一个简单的服务提供者和消费者。首先,我们需要定义一个服务接口,例如...
标题 "外部接口调用 使用spring4+hessian4实例" 涉及到的是在Java开发中,通过Spring框架和Hessian库实现远程服务调用的一个技术主题。Spring框架是Java领域广泛使用的轻量级框架,它提供了丰富的功能,包括依赖注入...
四、Hessian应用实例 一个简单的Hessian应用可能包括以下部分: 1. **服务端**:定义一个名为`Calculator`的接口,包含`add(int a, int b)`方法。实现`CalculatorImpl`类,并在Servlet容器(如Tomcat)中部署...