想必大家都知道LCDS、BlazeDS、Socket、AMF等都可以做Flex和Java的通讯技术。在这里我不多介绍这些技术,下面我给大家介绍一门轻量级的通讯技术吧他就是Hessian。Hessian是Caucho开发的一种二进制Web Service协议。他们的开源实现采用Apache许可。详情请浏览http://hessian.caucho.com/到目前为止Hessian已经对Java、Flash、Python、C++、.NET C#、D、Erlang、PHP、Ruby有很好的支持。

下面我们来看看Hessian是怎样实现Flex和Java交互的。在实例之前我们的做一点准备工作,就是到http://hessian.caucho.com/下载hessian-4.0.2.jar放到lib目录下hessian-flex-4.0.0.swc放到libs目录下。现在我们从一个Hello开始吧!(O(∩_∩)O哈哈~ 几乎每种技术的第一个例子都是Hello)

Hello.java

import com.caucho.hessian.server.HessianServlet;
public class Hello extends HessianServlet {
public String sayHello(String pepole){
return “Hello,”+pepole;
}
}

package com.hessian.servlet;

import com.caucho.hessian.server.HessianServlet;

public class Hello extends HessianServlet {

public String sayHello(String pepole){

return “Hello,”+pepole;

}

}

在web.xml中的配置

<servlet>

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

<servlet-class>com.hessian.servlet.Hello</servlet-class>

</servlet>

<servlet-mapping>

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

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

</servlet-mapping>

Hessian.xmxl

<?xml version=”1.0″ encoding=”utf-8″?>

<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” implements=”mx.rpc.IResponder” layout=”absolute” xmlns:mxml=”hessian.mxml.*”>

<mx:Script>

<![CDATA[

import mx.rpc.AsyncToken;

import mx.rpc.events.FaultEvent;

import mx.rpc.events.ResultEvent;

private function submit(e:MouseEvent):void{

var token:AsyncToken = hello.sayHello.send(pepole.text);

token.addResponder(this);

}

public function result(data:Object):void{

trace(ResultEvent(data).result);

}

public function fault(data:Object):void{

FaultEvent(data).message;

}

]]>

</mx:Script>

<mxml:HessianService id=”hello” destination=”hello” showBusyCursor=”true” />

<mx:HBox>

<mx:TextInput id=”pepole”/>

<mx:Button label=”Submit” click=”submit(event)”/>

</mx:HBox>

</mx:Application>

在这需要注意一点我们必须的实现mx.rpc.IResponder接口