RemoteObject在同一页面发送两次后台请求返回值处理

问题描述

项目是用的flex3+Spring3+hibernate3.6+blazeds,全用注解写的,在同一页面发送两次后台请求,总是报[RPC Fault faultString="java.lang.StackOverflowError : null" faultCode="Server.Processing" faultDetail="null"]错误,代码如下:<?xml version="1.0" encoding="utf-8"?><SuperPanel xmlns="net.brandonmeyer.containers.*" width="776" height="516" xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" allowClose="true" title="部门管理区" allowDrag="true" allowMaximize="true" allowMinimize="true" resizeEffect="Resize" moveEffect="Move" horizontalScrollPolicy="off" verticalScrollPolicy="off" [color=red]creationComplete="getAllDepartment()"[/color]> <mx:AMFChannel id="myamf" url="http://localhost:8080/MyFlexOA/messagebroker/amf"/><mx:ChannelSet id="channelSet" channels="{[myamf]}"/><mx:RemoteObject id="departmentService" destination="departmentService" channelSet="{channelSet}"/><mx:RemoteObject id="departmentServiceDel" destination="departmentService" channelSet="{channelSet}" /><mx:Script><![CDATA[import mx.rpc.AsyncToken;import mx.events.ListEvent;import mx.events.ItemClickEvent;import cn.edu.hyit.oa.event.DepartmentEvent;import mx.events.CloseEvent;import components.AddDepartment;import mx.rpc.events.ResultEvent;import mx.collections.ArrayCollection;import cn.edu.hyit.oa.vo.DepartmentVo;import mx.controls.Alert;import mx.managers.PopUpManager;import flash.events.ContextMenuEvent;[Bindable]public var departmentList:ArrayCollection;private var addDepartmentView:AddDepartment;private function getAllDepartment():void {var menuItem:ContextMenuItem = new ContextMenuItem("删除");var menuItem2:ContextMenuItem = new ContextMenuItem("保存更新");menuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,deleteHandler);//menuItem2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,updateHandler);var menu:ContextMenu = new ContextMenu();menu.hideBuiltInItems();menu.customItems.push(menuItem);menu.customItems.push(menuItem2);this.contextMenu = menu;[color=red]departmentService.addEventListener(ResultEvent.RESULT, resultHandler);departmentService.loadAllDepartments();[/color]}private function deleteHandler(e:ContextMenuEvent):void{[color=red]departmentServiceDel.addEventListener(ResultEvent.RESULT, delResultHandler);var d:DepartmentVo = de.selectedItem as DepartmentVo;departmentServiceDel.delDep(d);[/color]}private function resultHandler(e:ResultEvent):void {departmentList = e.result as ArrayCollection;}private function delResultHandler(e:ResultEvent):void {departmentList.removeItemAt(de.selectedIndex);} 问题补充:suziwen 写道

解决方案

既然你都已经获得了result了 你可以绑定一个数据源 把result赋给那个数据源 数据源发生了变化 页面上的内容 会自动变化的 有很多方式可以显示result的值 关键是只要你获得了页面控件的引用后 你就可以为所欲为
解决方案二:
我flex的经验也不多 以后多多交流
解决方案三:
callLaterDispatcher方法的代码呢? 看一下
解决方案四:
调试,跟踪是什么原因导致死偱环是否是某个变量值被意外改变导致代码没法跳出偱环等
解决方案五:
这样啊 如果是一个RO对象 请求两次 flex是无法辨别返回结果的 需要使用 异步调用令牌 AsyncToken 对象 来唯一的 绑定请求 AsyncToken对象的使用方法可以看那一下api我这里有一个 AsyncToken对象的小例子 你可以参考一下是调用一个天气的WebServicepackage services.weatherwebservice{import flash.events.Event;import mx.controls.Alert;import mx.rpc.AsyncToken;import scripts.MyResp;public class WeatherWebService extends _Super_WeatherWebService{public function WeatherWebService(){var myRep:MyResp = new MyResp();var token:AsyncToken = this.getWeatherbyCityName("石家庄");token.addResponder(myRep);//myRep必须是一个IResponse类型的对象 来接受返回的结果} }}package scripts{import mx.controls.Alert;import mx.rpc.IResponder;public class MyResp implements IResponder{public function MyResp(){}public function result(data:Object):void{data.Result是返回的结果}public function fault(info:Object):void{Alert.show("Error");}}}
解决方案六:
估计出现死偱环导致内存溢出了
解决方案七:
是内存溢出了嘛 把应用服务器的内存调大一点试试

时间: 2024-11-02 08:15:53

RemoteObject在同一页面发送两次后台请求返回值处理的相关文章

tomcat-单一HTML页面,采用dhtmlx前台组件,同时发送两个ajax请求,导致报错或者结果混乱,求解

问题描述 单一HTML页面,采用dhtmlx前台组件,同时发送两个ajax请求,导致报错或者结果混乱,求解 环境:tomcat+eclipse+dhtmlx+dhtmlxconnector 需求:一个页面4个grid,同时发送请求返回数据 现象:1.有时报错Cannot call reset() after response has been committed 2.有时结果换乱,Agrid的结果在Bgrid里 求详细分析和详细解决方法. 解决方案 原来也遇到类似问题,后来解决办法就是给每一个g

Nginx中404页面的配置及AJAX请求返回404页面的方法_nginx

404页面基础配置404错误是WWW网站访问容易出现的错误.最常见的出错提示:404 NOT FOUND.404错误页的设置对网站SEO有很大的影响,而设置不当,比如直接转跳主页等,会被搜索引擎降权拔毛.404页面的目的应该是告诉用户:你所请求的页面是不存在的,同时引导用户浏览网站其他页面而不是关掉窗口离去.搜索引擎通过HTTP状态码来识别网页的状态.当搜索引擎获得了一个错误链接时,网站应该返回404状态码,告诉搜索引擎放弃对该链接的索引.而如果返回200或302状态码,搜索引擎就会为该链接建立

struts1中如何从后台接收返回的数据,根据数据弹窗显示,但是不刷新页面

问题描述 struts1中如何从后台接收返回的数据,根据数据弹窗显示,但是不刷新页面 我用的是struts1框架,jsp中用表单提交的数据,然后在提交后页面根据后台的返回值弹窗提示并刷新页面. 现在我想让他只提示不刷新,有什么好方法,穿的数据较多,就不想用ajax了 解决方案 iframe可以在一定程度上替代ajax,试试? 解决方案二: [asp.net小札记]页面后台Post数据并接收返回数据 解决方案三: javascript利用return false 试试看 你这需求写的不明显

javaweb-我向jsp页面发送了一个List&amp;amp;lt;POJO&amp;amp;gt;,如何在前台把这个List再发送回后台呢?

问题描述 我向jsp页面发送了一个List<POJO>,如何在前台把这个List再发送回后台呢? 我向jsp页面发送了一个List,如何在前台把这个List再发送回后台呢? 我向jsp页面发送了一个List,如何在前台把这个List再发送回后台呢? 我向jsp页面发送了一个List,如何在前台把这个List再发送回后台呢? 求Demo~~ 求Demo~~ 求Demo~~ 解决方案 如果是传送对象最简单的办法用Session可以解决吧 解决方案二: ajax拼接json,post回去再反序列化

画页面-怎么在一个页面写两个listview。

问题描述 怎么在一个页面写两个listview. 我现在只是要写页面,还没有要实现.因为是新手.研究了一下午还是没搞出来.谁有简单的例子给我看看.因为我的页面还有其他内容,所以我真不知道怎么写.页面是这个样子: 就那两个集合我没画出来了.总有问题,在网上熟也只有一个的. android:id="@id/android:list" android:layout_width="fill_parent" android:layout_height="wrap_c

java-使用什么定时器能够定时对前台页面发送消息?

问题描述 使用什么定时器能够定时对前台页面发送消息? 系统启动后,后台定时器执行,执行的时候向jsp页面弹出消息提醒用户,使用什么方法能做到这个功能? 解决方案 除非HTML5 WebSocket 不然后台没有办法主动向叶面发送消息. 你可以尝试在jsp页面,通过AJAX技术定时向服务器请求消息,有新消息时通过javascript弹出消息提示.

一个页面使用两个DotNetTextBox,只能获取到第二个的值

问题描述 一个页面使用两个DotNetTextBox,只能获取到第二个的值,求教各路大神 解决方案 解决方案二:两个富文本框?从后台按ID取值也只能取到第二个?解决方案三:引用1楼starfd的回复: 两个富文本框?从后台按ID取值也只能取到第二个? ID是不同的解决方案四:如果不同ID取到的值一样,估计是这个控件的先天问题了--解决方案五:引用3楼starfd的回复: 如果不同ID取到的值一样,估计是这个控件的先天问题了-- 第二个可以取到值,第一个取不到值解决方案六:代码怎么写的?解决方案七

asp.net-向服务器发送了两个异步请求 结果却总是同时返回

问题描述 向服务器发送了两个异步请求 结果却总是同时返回 js代码 window.onload = function () { gp(); gp1(); } function gp() { $.ajax({ type: "post", url: "Filepro.aspx", data: { type: "gp" }, success: function (data) { alert(data); setTimeout("gp()&qu

保护你的ASP页面的两种办法

页面 保护你的ASP页面的两种办法 有时候你只想让人们从你的站点来访问你的某些页面, 而不允许他们从其它站点的非法链接中到达这些页面.在你想保护的ASP页面的顶部加上这些代码: < % if left(Request.ServerVariables("HTTP_REFERER"),24) <> "http://www.yoursite.com/" and _ Request.ServerVariables("HTTP_REFERER&qu