Hessian是Caucho开发的一种二进制Web Service协议。他们的开源实现采用Apache许可。详情请浏览 http://hessian.caucho.com/废话就不多说了,下面是一个Flex + Hessian 的小程序,直接看代码吧。
java 代码 //java服务端接口 public interface MyHessianService { public String getUserName(Integer userId); } java 代码 import com.caucho.hessian.server.HessianServlet; //java服务端接口实现类 public class MyHessianServiceImpl extends HessianServlet implements MyHessianService { public String getUserName(Integer userId) { return "MyName" + userId; } } web.xml 代码 <servlet> <servlet-name>myservice</servlet-name> <servlet-class>myhessian.service.MyHessianServiceImpl</servlet-class> </servlet> <servlet-mapping> <servlet-name>myservice</servlet-name> <url-pattern>/myservice</url-pattern> </servlet-mapping>服务端就上面这些,下面是flex的代码
xml 代码 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" implements="mx.rpc.IResponder" xmlns:hessian="hessian.mxml.*"> <mx:Script> [CDATA[ import mx.controls.Alert; import mx.rpc.events.ResultEvent; import mx.rpc.AsyncToken; public function result(data:Object):void { var event:ResultEvent = data as ResultEvent; userName.text = event.result as String; } public function fault(data:Object):void { Alert.show("error"); } public function onClick():void { var userId : NumberNumber = Number(userIdInput.text); //getUserName 就是java服务端 MyHessianServiceImpl 中的 getUserName 方法 var token:AsyncToken = myHessianService.getUserName.send(userId); token.addResponder(this); } ]] </mx:Script> <hessian:HessianService id="myHessianService" destination="myservice" showBusyCursor="true"/> <mx:Label x="10" y="10" text="UserID"/> <mx:TextInput id="userIdInput" x="61" y="8"/> <mx:Button x="10" y="36" label="getUserName" click="onClick()"/> <mx:Label id="userName" x="122" y="38" text="" width="99" fontWeight="bold" fontSize="11"/> </mx:Application>输入一个userID, 服务端返回userName注意需要实现mx.rpc.IResponder接口
相关资源:敏捷开发V1.0.pptx