0

许多地方都讨论了这个问题,但似乎没有一个解决方案对我有用。事情是这样的:在我的 mxml 代码中,一切正常:

<s:RemoteObject id="remotetest" destination="Hibernatetest" endpoint="http://praiseJESUS/blazeds/messagebroker/amf" result="remotetest_resultHandler(event)" fault="remotetest_faultHandler(event)"/>

<s:Button x="1248" y="401" label="Laden" click="remotetest.getCells()"/>

protected function remotetest_resultHandler(event:ResultEvent):void
{
  var cellList:ArrayCollection = event.result as ArrayCollection;
}

现在,这完美无缺。另一方面,不起作用的是:

var ro:RemoteObject = new RemoteObject;
var cs:ChannelSet = new ChannelSet;
var c:Channel = new AMFChannel("my-amf","http://JESUSAGAIN/blazeds/messagebroker/amf");
cs.addChannel(c);
ro.channelSet = cs;
ro.destination = "MyClass";
ro.source = "myNamespace.MyClass";
ro.getOperation("myfunction()").send();

这应该有效 - 不知道为什么它不。有什么提示吗?

4

1 回答 1

1

在检查 RemoteObject 的代码后,我发现了以下代码片段:

mx_internal function initEndpoint():void
{
    if (endpoint != null)
    {
        var chan:Channel;
        if (endpoint.indexOf("https") == 0)
        {
            chan = new SecureAMFChannel(null, endpoint);
        }
        else
        {
            chan = new AMFChannel(null, endpoint);
        }
        channelSet = new ChannelSet();
        channelSet.addChannel(chan);
    }
}

这表明,如果定义了端点,RemoteObject-Class 将创建自己的通道集。尽管这似乎与我所做的相同,但我不能,因为与我的第一次尝试不同,以下代码实际上有效。

var ro:RemoteObject = new RemoteObject("Hibernatetest");
            ro.endpoint = "http://Jesus/blazeds/messagebroker/amf";
            ro.myfunction();

似乎在定义通道集时必须非常小心。也许有人可以就此事启发我。

于 2011-05-23T01:28:03.543 回答