`
wangcheng
  • 浏览: 1456481 次
  • 性别: Icon_minigender_1
  • 来自: 青岛人在北京
社区版块
存档分类
最新评论

Flex + Hessian 学习笔记(一)

阅读更多
Hessian是Caucho开发的一种二进制Web Service协议。他们的开源实现采用Apache许可。详情请浏览 http://hessian.caucho.com/

废话就不多说了,下面是一个Flex + Hessian 的小程序,直接看代码吧。
java 代码
 
  1. //java服务端接口  
  2. public interface MyHessianService {  
  3.   
  4.     public String getUserName(Integer userId);  
  5. }  
java 代码
 
  1. import com.caucho.hessian.server.HessianServlet;  
  2.   
  3. //java服务端接口实现类  
  4. public class MyHessianServiceImpl extends HessianServlet implements  
  5.         MyHessianService {  
  6.   
  7.     public String getUserName(Integer userId) {  
  8.         return "MyName" + userId;  
  9.     }  
  10.   
  11. }  
web.xml 代码
 
  1. <servlet>  
  2.     <servlet-name>myservice</servlet-name>  
  3.     <servlet-class>myhessian.service.MyHessianServiceImpl</servlet-class>  
  4. </servlet>  
  5.   
  6. <servlet-mapping>  
  7.     <servlet-name>myservice</servlet-name>  
  8.     <url-pattern>/myservice</url-pattern>  
  9. </servlet-mapping>  

服务端就上面这些,下面是flex的代码

xml 代码
 
  1. <mx:Application   
  2.     xmlns:mx="http://www.adobe.com/2006/mxml"   
  3.     layout="absolute"   
  4.     implements="mx.rpc.IResponder"  
  5.     xmlns:hessian="hessian.mxml.*">  
  6.   
  7.     <mx:Script>  
  8.         [CDATA[  
  9.             import mx.controls.Alert;  
  10.             import mx.rpc.events.ResultEvent;  
  11.             import mx.rpc.AsyncToken;  
  12.               
  13.             public function result(data:Object):void {  
  14.                 var event:ResultEvent = data as ResultEvent;  
  15.                 userName.text = event.result as String;  
  16.             }  
  17.               
  18.             public function fault(data:Object):void {  
  19.                 Alert.show("error");  
  20.             }  
  21.               
  22.             public function onClick():void {  
  23.                 var userId : NumberNumber = Number(userIdInput.text);  
  24.                 //getUserName 就是java服务端 MyHessianServiceImpl 中的 getUserName 方法  
  25.                 var token:AsyncToken = myHessianService.getUserName.send(userId);  
  26.                 token.addResponder(this);  
  27.             }  
  28.         ]]  
  29.     </mx:Script>  
  30.   
  31.     <hessian:HessianService id="myHessianService" destination="myservice" showBusyCursor="true"/>  
  32.   
  33.     <mx:Label x="10" y="10" text="UserID"/>  
  34.     <mx:TextInput id="userIdInput" x="61" y="8"/>  
  35.     <mx:Button x="10" y="36" label="getUserName" click="onClick()"/>  
  36.     <mx:Label id="userName" x="122" y="38" text="" width="99" fontWeight="bold" fontSize="11"/>  
  37.       
  38. </mx:Application>  

输入一个userID, 服务端返回userName
注意需要实现mx.rpc.IResponder接口
分享到:
评论
3 楼 wangwanttt 2008-10-09  
java最后发布到TOMCAT,FLEX DEBUG目录下生成的XX.HTML放到哪呢?
2 楼 wangcheng 2008-04-01  
呵呵,只是多提供一种解决方案,扩展一下思路,Flex + Hessian 我还写了另外两篇,感兴趣的话可以看看

Flex + Hessian 学习笔记(二)
http://wangcheng.iteye.com/blog/141539

Flex + Hessian 学习笔记(三)
http://wangcheng.iteye.com/blog/151644
1 楼 isflyer 2008-04-01  
对我帮助很大,可是hessian的优点在哪里?直接servlet是不是更简单些?

相关推荐

Global site tag (gtag.js) - Google Analytics