`
daiyuok
  • 浏览: 26701 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Remoting 之Hessian

阅读更多

Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。

 

注意事项

  在进行基于Hessian的项目开发时,应当注意以下几点:

  ▲JAVA服务器端必须具备以下几点:

  ·包含Hessian的jar包

  ·设计一个接口,用来给客户端 调用

  ·实现该接口的功能

  ·配置web.xml ,配好相应的servlet

  ·对象必须实现Serializable 接口

  ·对于复杂对象可以使用Map的方法传递

  ▲客户端必须具备以下几点:

  ·java客户端包含Hessian.jar的包。C#中引用hessianCSharp.dll

  ·具有和服务器端结构一样的接口。包括命名空间都最好一样

  ·利用HessianProxyFactory调用远程接口。

  简单JAVA客户端例子:

服务器端

  新建一个名EasyHession的webProject项目,将Hessian.jar放入web-inf 下的lib中

  创建接口:

  packageapp.demo;

  public interfaceBasicAPI {

  public void setGreeting(Stringgreeting);

  public String hello();

  public User getUser();

  }

  实现接口:

  packageapp.demo;

  publicclass BasicService implements BasicAPI {

  privateString _greeting = "Hello, world";

  public void setGreeting(String greeting)

  {

  _greeting = greeting;

  System.out.println("set greetingsuccess:"+_greeting);

  }

  public String hello()

  {

  return _greeting;

  }

  public User getUser() {

  return new User("prance", "meshow");

  }

  }

  创建一个实现Serializable的projo类也可以是Bean。

  package app.demo;

  import java.io.Serializable;

  public class User implements Serializable{

  String userName ="snoopy";

  String password ="showme";

  public User(Stringuser, String pwd) {

  this.userName =user;

  this.password= pwd;

  }

  public StringgetUserName() {

  returnuserName;

  }

  public StringgetPassword() {

  returnpassword;

  }

  }

  接下来是配置web.xml

  <?xml version="1.0"encoding="UTF-8"?>

  <web-app version="2.4"

  xmlns="http://java.sun.com/xml/ns/j2ee"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

  http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

  <servlet>

  <servlet-name>hello</servlet-name>

  <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>

  <init-param>

  <param-name>service-class</param-name>

  <param-value>app.demo.BasicService</param-value>

  </init-param>

  </servlet>

  <servlet-mapping>

  <servlet-name>hello</servlet-name>

  <url-pattern>/hello</url-pattern>

  </servlet-mapping>

  </web-app>

  为了测试可以在编辑一个简单的test.jsp

  <%@ pageimport="com.caucho.hessian.client.HessianProxyFactory,

  app.demo.BasicAPI"%>

  <%@page language="java"%>

  <%

  HessianProxyFactory factory = newHessianProxyFactory();

  String url = ("http://" +request.getServerName() + ":" +request.getServerPort() +

  request.getContextPath() + "/hello");

  out.println(url);

  BasicAPI basic = (BasicAPI) factory.create(BasicAPI.class,url);

  out.println("Hello: " + basic.hello());

  out.println("Hello: " + basic.getUser() .getUserName() );

  out.println("Hello: " +basic.getUser().getPassword() );

  %>

  将一切配置成功后,将项目发布到web 服务器上去,可以是Tomcat,Rain等等。

  进入

  结果如下:

  Hello: Hello, world

  Hello: snoopy

  Hello: showme

  说明服务器端已经编写成功。

java客户端

  创建一个名为HessianClient的JAVAProject,载入hessian.jar包

  创建与服务器端一样的接口,及基础类

  public interface BasicAPI{

  public void setGreeting(Stringgreeting);

  public String hello();

  public User getUser();

  }

  import java.io.Serializable;

  public class User implements Serializable{

  String userName ="snoopy";

  String password ="showme";

  public User(Stringuser, String pwd) {

  this.userName =user;

  this.password= pwd;

  }

  public StringgetUserName() {

  returnuserName;

  }

  public StringgetPassword() {

  returnpassword;

  }

  }

创建客户端程序

  importcom.caucho.hessian.client.HessianProxyFactory;

  public class BasicClient {

  public static void main(String[] args)

  throwsException

  {

  String url ="http://127.0.0.1 :8080/Hessian/hello";

  HessianProxyFactoryfactory = new HessianProxyFactory();

  BasicAPIbasic = (BasicAPI) factory.create(BasicAPI.class, url);

  System.out.println("Hello:" + basic.hello());

  System.out.println("Hello:" + basic.getUser().getUserName());

  System.out.println("Hello:" + basic.getUser().getPassword());

  basic.setGreeting("HelloGreeting");

  System.out.println("Hello:" + basic.hello());

  }

  }

  运行结果:

  Hello: Hello, world

  Hello: prance

  Hello: meshow

  Hello: Hello Greeting

 

未完待续、、、

分享到:
评论

相关推荐

    Hessian remoting onhttp

    文件列表中的“Hessian”可能包含了Hessian的相关库、示例代码或者文档,可以帮助开发者更好地理解和使用Hessian Remoting。 总结来说,Hessian Remoting是基于HTTP的二进制RPC技术,它简化了远程方法调用的过程,...

    Hessian 使用小结

    - Spring集成Hessian:http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/remoting.html 通过这些资源,开发者可以更深入地理解并应用Hessian在实际项目中的各种场景。

    Hessian:轻量级的remoting onhttp工具介绍及基于Spring2的完整实例

    &lt;bean id="hessianServer" class="org.springframework.remoting.caucho.HessianServlet"&gt; &lt;!-- 配置Servlet容器 --&gt; &lt;!-- 端口配置 --&gt; ... &lt;!-- 将HessianServlet注册到Jetty服务器 --&gt; ...

    dubbo-hessian协议http请求demo(java)

    Hessian是Apache的一个子项目,它是一种二进制的Remoting协议,常用于Java和.NET之间进行远程方法调用(RPC)。本示例将介绍如何在Java中利用Dubbo的Hessian协议进行HTTP请求的实现。 首先,我们需要理解Hessian...

    Hessian协议格式

    Hessian 协议是一种轻量级的 remoting on http 工具,使用简单的方法提供了 RMI 的功能。采用的是二进制 RPC 协议,所以它很适合于发送二进制数据。Hessian 主要用作面向对象的消息通信。 Hessian 协议报文格式可以...

    Hessian的Spring配置

    在Spring框架中,Hessian是一种轻量级的远程方法调用(RPC)协议,它能够实现Java对象到字节流的序列化,从而使得服务端的对象可以在客户端直接调用,仿佛对象就在本地一样。Hessian提供了高效的二进制RPC协议,使得...

    Spring中集成Hessian的问题

    &lt;bean id="hessianServiceExporter" class="org.springframework.remoting.caucho.HessianServiceExporter"&gt; ``` 或者在web.xml中配置HessianServlet: ```xml &lt;servlet-name&gt;HessianServlet ...

    hessian-3.0.20-src.jar

    hessian是一个轻量级的Java Remoting方案

    Hessian的使用配置步骤

    远程方法调用的比较,Hessian方法的介绍和相关配置.Hessian是一个轻量级的remoting on http工具,采用的是Binary RPC协议,所以它很适合于发送二进制数据,同时又具有防火墙穿透能力。Hessian一般是通过Web应用来提供...

    srpingMVC+hessian4整合jar包,工程里拷出来的,绝对可用

    &lt;bean id="userServiceExporter" class="org.springframework.remoting.caucho.HessianExporter"&gt; &lt;property name="urlPath" value="/hessian/userService" /&gt; ``` 3. **配置 Spring MVC**:在 Spring MVC...

    轻量级的remoting on http工具(最新):hessian-4.0.60

    Hessian一般是通过Web应用来提供服务,因此非常类似于平时我们用的 WebService。 只是它不使用SOAP协议,但相比webservice而言更简单、快捷。

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

    在IT行业中,Hessian是一种高效的二进制RPC(Remote Procedure Call)协议,它由Caucho Technology开发。Spring框架为了提供远程服务调用的支持,将其集成到自己的服务中,使得开发者能够利用Hessian的特性来实现...

    Hessian and Aandroid通讯

    Hessian是一种基于HTTP的二进制Remoting协议,由Caucho公司开发。它能够将Java对象序列化为高效的二进制格式,从而减少网络传输的数据量,提高通信效率。相比XML或JSON,Hessian的解析速度更快,占用的带宽更少,...

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

    Hessian是由Caucho公司开发的一种轻量级的二进制Remoting协议,它提供了高效的序列化和反序列化机制,使得跨平台的远程方法调用(RMI)变得更加便捷。Hessian支持HTTP传输,可以在防火墙开放的HTTP端口上进行通信,...

    自己写了个Hessian

    Hessian是一种二进制的Remoting协议,由Caucho Technology开发,常用于分布式系统中的远程方法调用(RPC)。这种协议的主要优点是它能够高效地序列化和反序列化Java对象,使得网络通信更加高效。 Hessian协议基于...

    spring 集成 hessian例子

    Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。参考文档地址...

    Hessian和Spring集成示例

    class="org.springframework.remoting.caucho.HessianExporter"&gt; &lt;property name="url" value="/hessian/myService" /&gt; ``` 4. **客户端消费服务**:在客户端,同样需要引入Hessian库。然后,你可以使用`...

    spring remoting

    在分布式系统中,远程调用(Remoting)是必不可少的技术之一,Spring Remoting提供了多种远程调用解决方案,帮助开发者轻松实现服务间的通信。本文将深入探讨Spring Remoting的核心概念、实现方式以及实际应用。 ...

    hessian-4.0.37-src.jar

    Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。

    hessian3.1

    Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。

Global site tag (gtag.js) - Google Analytics