- 浏览: 1465087 次
- 性别:
- 来自: 青岛人在北京
文章分类
最新评论
-
yhxf_ie:
azheng270 写道 永远是0知道答案了, inser ...
使用MySQL的LAST_INSERT_ID -
yhxf_ie:
insert了还是0... 可能还要设置些什么?
使用MySQL的LAST_INSERT_ID -
一如年少:
123123
Flex使用ribbit.com的服务给手机发送短信SMS -
pointdew:
poincare 写道您好,请教一个问题,如果我的 swf 文 ...
Flex:使用FlexPaper显示PDF文档 -
pointdew:
swf远程加载问题 : flexpaper无法加载http方式 ...
Flex:使用FlexPaper显示PDF文档
这个例子是,输入一个用户信息,并保存到服务端。
第一个目的是实验一下传送对象;
再一个目的是感觉Hessian例子里的用法不太舒服,又要实现mx.rpc.IResponder,又要处理AsyncToken,还要send,所以把这些封装了一下,由BaseService实现mx.rpc.IResponder,由UserService类开放服务接口(既提供java端UserService的方法),这样其它类就可以像使用普通对象一样使用UserService类。
java 代码
- public class UserBean implements Serializable {
- private Integer userId;
- private String userName;
- private String password;
- private String companyName;
- getter setter ...
- }
java 代码
- public interface UserService {
- public String getUserName(Integer userId);
- public List<UserBean> saveUser(UserBean userBean);
- }
java 代码
- public class UserServiceImpl extends HessianServlet implements UserService {
- private static List<UserBean> userDataSource = new ArrayList<UserBean>();
- public String getUserName(Integer userId) {
- return "MyName" + userId;
- }
- public List<UserBean> saveUser(UserBean userBean) {
- userBean.setUserId(userDataSource.size() + 1);
- userDataSource.add(userBean);
- return userDataSource;
- }
- }
xml 代码
- <servlet>
- <servlet-name>userService</servlet-name>
- <servlet-class>myhessian.service.UserServiceImpl</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>userService</servlet-name>
- <url-pattern>/userService</url-pattern>
- </servlet-mapping>
以上是服务端的java代码,下面是flex的代码
as3 代码
- public class UserBean {
- public var userId : int;
- public var userName : String;
- public var password : String;
- public var companyName : String;
- }
as3 代码
- public class BaseService implements IResponder {
- protected var resultCallbackFunction : Function;
- protected var faultCallbackFunction : Function;
- public function BaseService(resultCallback:Function=null, faultCallback:Function=null) {
- if (resultCallback == null) {
- resultCallbackFunction = defaultFunction;
- } else {
- resultCallbackFunction = resultCallback;
- }
- if (faultCallback == null) {
- faultCallbackFunction = defaultFunction;
- } else {
- faultCallbackFunction = faultCallback;
- }
- }
- public function result(data:Object):void {
- var event:ResultEvent = data as ResultEvent;
- resultCallbackFunction(event.result);
- }
- public function fault(data:Object):void {
- var event:ResultEvent = data as ResultEvent;
- faultCallbackFunction(event.result);
- }
- public function defaultFunction(data:Object):void {
- }
- }
as3 代码
- public class UserService extends BaseService {
- private static var _userService : HessianService;
- protected static function getUserService():HessianService {
- if (!_userService) {
- _userService = new HessianService("userService");
- }
- return _userService;
- }
- public function UserService(resultCallback:Function=null, faultCallback:Function=null) {
- super(resultCallback, faultCallback);
- }
- public function getUserName(userId:int):void {
- var token:AsyncToken = getUserService().getUserName.send(userId);
- token.addResponder(this);
- }
- public function saveUser(user : UserBean):void {
- var token:AsyncToken = getUserService().saveUser.send(user);
- token.addResponder(this);
- }
- }
xml 代码
- <mx:Application
- xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="absolute" >
- <mx:Script>
- [CDATA[
- import hessian.service.UserService;
- import hessian.bean.UserBean;
- public function refreshUserDataGrid(data:Object):void {
- //只能as Array,不能as ArrayCollection
- userDataGrid.dataProvider = data as Array;
- }
- public function onClick():void {
- var user : UserBean = new UserBean();
- user.userName = nameInput.text;
- user.password = passwordInput.text;
- user.companyName = companyInput.text;
- var userService : UserService = new UserService(refreshUserDataGrid);
- userService.saveUser(user);
- }
- ]]
- </mx:Script>
- <mx:Label x="10" y="10" text="Name" width="59"/>
- <mx:TextInput x="77" y="8" id="nameInput"/>
- <mx:Label x="10" y="36" text="Password"/>
- <mx:Label x="10" y="62" text="Company"/>
- <mx:TextInput x="77" y="34" id="passwordInput"/>
- <mx:TextInput x="77" y="60" id="companyInput"/>
- <mx:Button x="77" y="90" label="Button" click="onClick()"/>
- <mx:DataGrid x="10" y="120" width="271" id="userDataGrid">
- <mx:columns>
- <mx:DataGridColumn headerText="ID" dataField="userId"/>
- <mx:DataGridColumn headerText="Name" dataField="userName"/>
- <mx:DataGridColumn headerText="Company" dataField="companyName"/>
- </mx:columns>
- </mx:DataGrid>
- </mx:Application>
- HessianFlex.rar (258.5 KB)
- 描述: source & swf
- 下载次数: 498
评论
3 楼
mathgl
2008-05-09
有谁知道怎么 处理 IOErrorEvent吗?
好像总是不能dispatch
好像总是不能dispatch
2 楼
wangcheng
2008-02-26
特别复杂的对象没测过。这些已经满足我的项目需要了。
1 楼
多多
2008-02-25
嗯,的确不错,楼主有测试过复杂java对象的传递么?
发表评论
-
Flex4中文视频教程 - RIAMeeting
2010-04-23 10:48 6847RIAMeeting翻译的Flex4中文视频教程, 地址 ht ... -
Flash Flex 开源游戏引擎
2010-03-28 21:18 7237今天去了 9RIA.com 的北京天地会活动, 会上介绍了一些 ... -
几十个 ActionScript 3.0 APIs for Flex, Flash, AIR
2009-12-22 11:54 4198开发过程中使用API可以节省时间,这里有几十个API,它们可以 ... -
Flex:使用FlexPaper显示PDF文档
2009-12-15 17:03 35476FlexPaper是一个开源的轻量级文档显示组件,被设计用来与 ... -
Flex白板画图例子
2009-06-21 18:56 8142这个程序是从公司2007年做的一个项目中抽取出来的部分代码完成 ... -
Flex使用ribbit.com的服务给手机发送短信SMS
2009-06-13 15:10 3114http://www.ribbit.com/ 可以将语音通 ... -
Flex鼠标移到Label上显示手型useHandCursor
2009-05-08 11:28 5673要想鼠标在Label上显示为手型,需要设置3个属性 & ... -
Flex3与EJB3的WebService通讯
2009-04-18 14:20 3750项目中使用了Flex3 + EJB3 + WebService ... -
CodeBehind and DI 分离MXML中的ActionScript
2009-04-09 20:27 2744你是否开始厌倦在 mxml 中写 <mx:Script& ... -
De MonsterDebugger开源的Flex运行时调试器
2009-04-09 15:53 4090De MonsterDebugger http://www. ... -
Flex组件中PopUpManager在全局坐标中心弹出窗口
2009-04-02 19:52 5043在Flex的某个组件中使用 var somePopupWi ... -
在JBoss4.2中放置crossdomain.xml解决flex3跨域访问WebService问题
2009-03-31 20:54 5764Flex访问部署在JBoss4.2上的WebService时报 ... -
使用Flex3的Import Web Service功能
2009-03-28 21:36 2516在FlexBuilder的菜单上选 Data -> I ... -
使用KitchenSync和CASALib延迟(delay)执行Flex的function
2009-02-25 18:26 3427要延迟(delay)执行Flex的function,或按顺序同 ... -
Flex中解决Error #2044 securityError
2009-02-25 16:54 6656在FlexBuilder中运行app没有问题,复制项目的 bi ... -
Flex中加载Flash CS3制作的swf文件
2009-02-14 20:37 6315Flex加载Flash CS3制作的swf文件, 看Demo ... -
Flex视频教学 (RIAMeeting翻译Flex in a Week)
2008-12-01 00:03 4347此系列Flex视频教学是基于Adobe官方的Flex in a ... -
Flex中文API (Adobe官方)
2008-08-19 10:03 21535Adobe推出的中文API http://livedocs ... -
RIAMeeting - Flash Media Server 3
2008-07-26 22:08 3269这次是RIAMeeting的第七次 ... -
Mate Flex Framework
2008-07-22 11:29 3171Mate 是一个基于标签(tag-based)的事件驱动(ev ...
相关推荐
Flex + Hessian 学习笔记(二) http://wangcheng.javaeye.com/blog/141539 Flex + Hessian 学习笔记(三) http://wangcheng.javaeye.com/blog/151644 ####(重要说明) 使用过程中,根据需要请修改 Flex 里的 ...
Spring + Mybatis + Hessian 亲自手写,附带测试用例,有问题随时提问。操作流程,自己导入sql,并修改数据库配置,配置Tomcat后启动服务,然后启动Tomcat, 最后测试用例。 测试用例步骤:步骤1.Run HessianTest. ...
1.名称:Spring + Hessian + Spring MVC(包括Server和Client).zip 2.来源:自己实现 3.备注:项目有两个系统,包括Server端和Client端,项目已经跑通,可以实现。 4.注意:client中pom.xml里最后的一个jar包,需要...
压缩包里有两个 springMVC+Ibatis 的项目:HessianServer(服务器端),HessianClient(客户端),解压导入到MyEclipse 更改配置文件中的数据源,建表(和实体类对应的表),执行客户端中的BasicClient.java文件即可...
完美整合spingMVC+mybatis+hessian+activeMQ+redis,引入mybatis物理分页插件,模拟cookie登陆的工具类。
Hessian通过序列化Java对象为紧凑的二进制格式,减少了网络传输的数据量,提高了通信速度。Hessian与RMI类似,但它的二进制格式使其在网络环境中的性能更优。 “CXF+RMI+HESSIAN”的结合意味着我们可以利用CXF创建...
struts2+ibatis+spring+Hessian 整合项目 web项目整合,服务端用hessian协议远程调用服务端的方法,hessian是用spring代理整合,struts2+ibatis+spring的整合项目,用作学习和开发基础平台构建很有用处,工程导入...
spring+hessian+maven整合.zip
Hessian是一种二进制Web服务协议,由Caucho公司开发。它提供了一种高效的RPC(Remote Procedure Call)机制,允许Java对象在HTTP上进行远程调用,其优点在于传输速度快、序列化效率高。Hessian支持多种语言,包括...
Hessian是一种二进制web服务协议,由Caucho公司开发。它提供了简单、快速的方式进行远程方法调用(RPC)。Hessian协议使用HTTP作为传输层,但编码方式比普通的SOAP或者REST更加紧凑和高效,因此在性能上有所提升。...
然后,Hessian是一种二进制RPC(远程过程调用)协议,由Caucho公司开发。它的主要优点在于减少了网络传输的数据量,从而提高了服务间的通信速度。Hessian提供了透明的序列化和反序列化机制,使得Java对象可以直接跨...
本压缩包“DuBBo(rmi+Hessian).zip”提供了关于Dubbo如何与RMI(Remote Method Invocation)和Hessian两种通信协议结合使用的深入学习资料。下面我们将详细探讨这两个知识点。 首先,RPC(Remote Procedure Call)...
标题中的“外部接口调用 使用spring4+hessian4实例(二)”指的是使用Spring框架的版本4和Hessian库的版本4来实现远程服务调用的一种实践案例。在这个实例中,我们将探讨如何利用这两个组件来构建分布式系统中的服务...