4

コンテキスト : FDT で開発され、Flash CS4 でコンパイルされた Flash アプリケーションに取り組んでいます (巨大なライブラリが必要です)。さまざまな Weborb サービスに接続する必要があります。

Weborb が適切に構成されている。私のサービスは適切に実行され、管理コンソールを介して値が返されます。Flex でコンパイルされた Weborb の例とさまざまなテストは、完全に機能します。

問題 : コードを Flash でコンパイルするように適合させ、リモート オブジェクトを次のようにセットアップしようとすると、次のようになります。

var remoteObject = new RemoteObject();
remoteObject.destination = "GenericDestination";
remoteObject.source = "MyServices.MyService";
remoteObject.addEventListener("fault", onFault);
remoteObject.getFoo.addEventListener("result", onResult);

次の障害が発生します。

faultCode: InvokeFailed
faultString: '[MessagingError]'
faultDetail: 'null'

この方法でチャネルをセットアップしようとすると:

var channelSet:ChannelSet = new ChannelSet();
var amfChannel:AMFChannel = new AMFChannel("my-amf",
    "http://localhost/weborb/weborb.php");
channelSet.addChannel(amfChannel);

var remoteObject = new RemoteObject();
remoteObject.channelSet = channelSet;
remoteObject.destination = "MyServices/MyService";

次に、この障害が発生します。

faultCode: Client.Error.MessageSend
faultDetail: Channel.Connect.Failed
url: 'null'

質問: Flash でコンパイルされた Flash アプリケーションから Weborb リモート処理サービスに接続するように RemoteObject を適切にセットアップする方法を教えてください。

これは私を夢中にさせています。

4

2 に答える 2

2

私はこのコードを使用してRemoteObjectプログラムで構成しています:

var channelSet:ChannelSet = new ChannelSet();
var channel:Channel = new AMFChannel("my-amf", "http://localhost/weborb/weborb.php");
channelSet.addChannel(channel);

var ro:RemoteObject = new RemoteObject("SomeCustomDestination");
ro.source = "Full.Class.Name.With.Namespace";
ro.channelSet = channelSet;

// invoking service
var op:AbstractOperation = ro.getOperation("SomeCustomMethod");
op.addEventListener(ResultEvent.RESULT, onResult);
op.send(params);

サーバーが必要とするSomeCustomDestinationが定義されWEB-INF/flex/services-config.xmlていますが、クライアントはアクセスするためにそれを識別する必要があります。サーバーは、宛先に対してアクセス ポリシー (セキュリティ制約) を発行する場合があります。

于 2011-06-11T12:08:46.507 に答える
0

これは少し前からの私の投稿です。多分これは役立つでしょう。

于 2009-11-12T15:34:28.970 に答える