0

能否请你帮忙。我正在使用 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]
4

1 回答 1

0

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

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

注意从“状态”到“更新”的变化。

于 2009-12-05T20:39:34.490 回答