Hessian实现Flex和Java的交互
想必大家都知道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
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接口