我最近从Adobe下载了最新版本的BlazeDS交钥匙,看看能否让BlazeDS连接到我最近用Flex语言开发的一个移动应用程序。在做了一两个教程之后,我制作了一个基于浏览器的flex应用程序,它基本上完成了我想让移动应用程序做的所有事情。
然而,当我试图让它在移动应用程序中工作时,我得到了一些不同的错误,特别是关于RemoteObject和Producer对象。每当我尝试访问远程对象的getServers()方法(该应用程序监视许多服务器的状态)时,我都会收到HTTP502错误。每当我尝试使用Producer发送消息时,都会发生同样的事情。错误是:
Channel Fault: error; NetConnection.Call.Failed: HTTP: Status 502: url: 'http://erviceStatusUpdater.swf/samples/messagebroker/amfpolling'"ServiceStatusUpdater“是应用程序的名称,它解释了第一部分,但不是"http://”声明“后面缺少的字母。我需要为每个生产者和远程对象声明一个端点吗?如果是这样的话,它们应该是什么?我试过查找它,但似乎很难找到关于这类事情的文档。
我还应该提到,"samples“是当前的上下文根,或者至少在使用相同服务器运行的其他项目中是这样的。已经设置了消息传递通道和远程处理通道,因为这些通道与使用浏览器应用程序时相同。
谢谢
编辑:我已经设法通过指定远程对象的端点来使远程对象工作。对于任何有类似问题的人,终点(在我的例子中)是“messagebroker根}/http://localhost:8400/{context/amf”,其中"{context root}“是上下文根(在我的例子中是"samples")。不过,消费者仍然没有收到消息。
发布于 2011-11-20 23:09:25
最终解决了这两个问题。RemoteObject的问题是没有定义端点。在对我的问题的编辑中详细介绍了此修复方法。
消费者的第二个问题是没有为其定义通道的事实。为此,必须定义使用者应该使用的通道集(可以是ChannelSet的实例),然后在该通道集中,应该有一个通道实例将其URI设置为指向正确的流(在我的示例中,它恰好与远程处理端点相同;amf)。
我在actionscript中做了第二个修复,不确定是否可以在mxml中完成所有的修复。
https://stackoverflow.com/questions/8184198
复制相似问题