gpt4 book ai didi

没有 services-config.xml 的 Flash RemoteObject Weborb 连接(无 Flex)

转载 作者:行者123 更新时间:2023-12-02 01:30:27 34 4
gpt4 key购买 nike

上下文:我正在开发一个使用 FDT 开发并使用 Flash CS4 编译的 Flash 应用程序(我需要一个巨大的库)。它应该连接到各种 Weborb 服务。

Weborb 已正确配置。我的服务通过管理控制台正确执行并返回值。 Weborb 示例以及使用 Flex 编译的各种测试功能齐全。

问题:当我尝试调整代码以使用 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'

如果我尝试以这种方式设置 channel :

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'

问题:如何正确设置 RemoteObject 以从使用 Flash 编译的 Flash 应用程序连接到 Weborb 远程服务?

这让我发疯。

最佳答案

我使用此代码以编程方式配置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);

SomeCustomDestinationWEB-INF/flex/services-config.xml中定义,服务器需要它,但客户端需要识别它才能访问。服务器可能会为您的目的地发布访问策略(安全约束)。

关于没有 services-config.xml 的 Flash RemoteObject Weborb 连接(无 Flex),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1721881/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com