0

この質問は多くの場所で議論されていますが、どの解決策もうまくいかないようです。事は次のとおりです: 私の mxml-code では、すべてが完全に機能します:

<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 に答える