姜戈 + pyamf:从 ActionScript 应用程序调用网关时出现奇怪的异常
你能帮忙吗? 我正在使用 django-amf-gateway 应用程序 (http://bitbucket.org/wolever/django -amf-网关)。
我这样定义网关:
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 Fault > faultString="[MessagingError > message='Destination 'state' either > does not exist or the destination has > no channels defined (and the > application does not define any > default channels.)']" > faultCode="InvokeFailed" > faultDetail="Couldn't establish a > connection to 'state'"] at > 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] > at > 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] > at > mx.rpc.remoting::Operation/send()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\remoting\Operation.as:113] > at > Function/http://adobe.com/AS3/2006/builtin::apply() > at > mx.rpc.remoting.mxml::Operation/send()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\remoting\mxml\Operation.as:170] > at > Function/http://adobe.com/AS3/2006/builtin::apply() > at > 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] > at > Game/main()[/Users/oleg/jin/goclub/trunk/goapp/usersList/src/Game.mxml:51] > at > Game/___Game_Application1_creationComplete()[/Users/oleg/jin/goclub/trunk/goapp/usersList/src/Game.mxml:3] > at > flash.events::EventDispatcher/dispatchEventFunction() > at > flash.events::EventDispatcher/dispatchEvent() > at > mx.core::UIComponent/dispatchEvent()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:9298] > at mx.core::UIComponent/set > initialized()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:1169] > at > mx.managers::LayoutManager/doPhasedInstantiation()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:718] > at > Function/http://adobe.com/AS3/2006/builtin::apply() > at > mx.core::UIComponent/callLaterDispatcher2()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8628] > at > mx.core::UIComponent/callLaterDispatcher()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8568]
Could you please help.
I am using the django-amf-gateway application (http://bitbucket.org/wolever/django-amf-gateway).
I defined the gateway this way:
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])
And when I called the service from mxml this way:
updateService.state();
<mx:RemoteObject id="updateService" endpoint="{Config.updateGateWay}" destination="state">
<mx:method name="update" result="onSuccess(event)" fault="onFault(event)" />
</mx:RemoteObject>
I got an exception:
> [RPC Fault > faultString="[MessagingError > message='Destination 'state' either > does not exist or the destination has > no channels defined (and the > application does not define any > default channels.)']" > faultCode="InvokeFailed" > faultDetail="Couldn't establish a > connection to 'state'"] at > 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] > at > 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] > at > mx.rpc.remoting::Operation/send()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\remoting\Operation.as:113] > at > Function/http://adobe.com/AS3/2006/builtin::apply() > at > mx.rpc.remoting.mxml::Operation/send()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\remoting\mxml\Operation.as:170] > at > Function/http://adobe.com/AS3/2006/builtin::apply() > at > 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] > at > Game/main()[/Users/oleg/jin/goclub/trunk/goapp/usersList/src/Game.mxml:51] > at > Game/___Game_Application1_creationComplete()[/Users/oleg/jin/goclub/trunk/goapp/usersList/src/Game.mxml:3] > at > flash.events::EventDispatcher/dispatchEventFunction() > at > flash.events::EventDispatcher/dispatchEvent() > at > mx.core::UIComponent/dispatchEvent()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:9298] > at mx.core::UIComponent/set > initialized()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:1169] > at > mx.managers::LayoutManager/doPhasedInstantiation()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:718] > at > Function/http://adobe.com/AS3/2006/builtin::apply() > at > mx.core::UIComponent/callLaterDispatcher2()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8628] > at > mx.core::UIComponent/callLaterDispatcher()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8568]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
mx:RemoteObject 方法名称错误或需要更新 Python 代码:
请注意从“state”到“update”的更改。
Either the mx:RemoteObject method name is wrong or the Python code needs to be updated:
Note the change from 'state' to 'update'.