2009-10-31 27 views
0

请帮忙。 我正在使用django-amf-gateway应用程序(http://bitbucket.org/wolever/django-amf-gateway)。Django + pyamf:从actionscript应用程序调用网关时出现奇怪的异常

我定义的网关是这样的:

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] 

回答

0

无论是mx:RemoteObject方法名称错误或需要更新Python代码:

class ChangeService(object): 
    def update(self): 
     game = Game.objects.get(id = 1) 
     return game.move_number 

请注意从“状态”到“更新”的更改。

相关问题