Django + pyamf:从动作脚本应用程序调用网关时出现奇怪的异常
Posted
技术标签:
【中文标题】Django + pyamf:从动作脚本应用程序调用网关时出现奇怪的异常【英文标题】:Django + pyamf: Strange exception when calling the gateway from actionscript application 【发布时间】:2010-12-11 22:56:27 【问题描述】:你能帮忙吗? 我正在使用 django-amf-gateway 应用程序 (http://bitbucket.org/wolever/django-amf-gateway)。
我是这样定义网关的:
from django_amf_gateway import register_amf_service
from goserver.models import Game
class ChangeService(object):
def state(self):
game = Game.objects.get(id = 1)
return game.move_number
register_amf_service('state', ChangeService, [Game])
当我以这种方式从 mxml 调用服务时:
updateService.state();
<mx:RemoteObject id="updateService" endpoint="Config.updateGateWay" destination="state">
<mx:method name="update" result="onSuccess(event)" fault="onFault(event)" />
</mx:RemoteObject>
我遇到了一个异常:
> [RPC 故障 > faultString="[MessagingError > message='目的地'状态' > 不存在或目的地有 > 未定义频道(以及 > 应用程序没有定义任何 > 默认频道。)']" > faultCode="InvokeFailed" > faultDetail="无法建立 > 连接到“状态””] 在 > mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::invoke()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\ rpc\AbstractInvoker.as:263] > 在 > mx.rpc.remoting.mxml::Operation/http://www.adobe.com/2006/flex/mx/internal::invoke()[C:\autobuild\3.2.0\frameworks\projects\rpc\ src\mx\rpc\remoting\mxml\Operation.as:197] > 在 > mx.rpc.remoting::Operation/send()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\remoting\Operation.as:113] > 在 > 函数/http://adobe.com/AS3/2006/builtin::apply() > 在 > mx.rpc.remoting.mxml::Operation/send()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\remoting\mxml\Operation.as:170] > 在 > 函数/http://adobe.com/AS3/2006/builtin::apply() > 在 > mx.rpc::AbstractService/http://www.adobe.com/2006/actionscript/flash/proxy::callProperty()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\ rpc\AbstractService.as:290] > 在 > 游戏/main()[/Users/oleg/jin/goclub/trunk/goapp/usersList/src/Game.mxml:51] > 在 > 游戏/___Game_Application1_creationComplete()[/Users/oleg/jin/goclub/trunk/goapp/usersList/src/Game.mxml:3] > 在 > flash.events::EventDispatcher/dispatchEventFunction() > 在 > flash.events::EventDispatcher/dispatchEvent() > 在 > mx.core::UIComponent/dispatchEvent()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:9298] > 在 mx.core::UIComponent/set > 初始化()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:1169] > 在 > mx.managers::LayoutManager/doPhasedInstantiation()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:718] > 在 > 函数/http://adobe.com/AS3/2006/builtin::apply() > 在 > mx.core::UIComponent/callLaterDispatcher2()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8628] > 在 > mx.core::UIComponent/callLaterDispatcher()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8568]【问题讨论】:
【参考方案1】:mx:RemoteObject 方法名错误或 Python 代码需要更新:
class ChangeService(object):
def update(self):
game = Game.objects.get(id = 1)
return game.move_number
注意从“状态”到“更新”的变化。
【讨论】:
以上是关于Django + pyamf:从动作脚本应用程序调用网关时出现奇怪的异常的主要内容,如果未能解决你的问题,请参考以下文章