Hessian是Caucho开发的一种二进制Web Service协议。他们的开源实现采用Apache许可。详情请浏览
http://hessian.caucho.com/
废话就不多说了,下面是一个Flex + Hessian 的小程序,直接看代码吧。
服务端就上面这些,下面是flex的代码
输入一个userID, 服务端返回userName
注意需要实现mx.rpc.IResponder接口
废话就不多说了,下面是一个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接口