这个问题在很多地方都有讨论,但没有一个解决方案对我有用。接下来的事情:在我的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();
这应该工作 - 不知道为什么它没有。任何提示?
答案 0 :(得分: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将创建自己的channelset。尽管看起来这和我所做的一样,我不可能,因为下面的代码实际上是有效的,不像我的第一次尝试。
var ro:RemoteObject = new RemoteObject("Hibernatetest");
ro.endpoint = "http://Jesus/blazeds/messagebroker/amf";
ro.myfunction();
当定义通道集时,似乎必须非常小心。也许有人可以就此事启发我。