我有一个围绕HTTPService
的包装器,它处理可能由RESULT
方法触发的FAULT
,INVOKE
和send()
事件。我已经验证了在成功请求,HTTP错误(例如404)和调用时调用了正确的事件处理程序。
我正在测试运行在localhost上的Jetty。当它关闭时,我。即我的浏览器会给我“无法建立连接”,只触发INVOKE
事件,并且没有抛出任何错误。这意味着呼叫正常完成,但没有任何事情发生,导致非常令人沮丧的用户体验。
这里出了什么问题,这是一个错误还是我做错了什么?如何检测无法建立连接?
我尝试在调试器中逐步执行框架的源代码,但这是另一种蠕虫病毒,并且是很多挫折的根源。显然我似乎无法找到正确的SDK版本(在我的SDK附带的源不起作用之后,我从this download page尝试了3.0到3.5),因为调试器跳到了错误的行。我最深入地使用版本3.5,但它再次失去同步,在AsyncInvoker.invoke()
的某个地方。我正在运行Flex Builder Linux,alpha 5。
答案 0 :(得分:2)
这适用于Flex 3.5:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
import mx.controls.Alert;
</mx:Script>
<mx:applicationComplete>
srv.send();
</mx:applicationComplete>
<mx:HTTPService id="srv" url="http://localhost:8080/foo.xml">
<mx:fault>
Alert.show("can't connect");
</mx:fault>
</mx:HTTPService>
</mx:Application>
警报显示我的本地服务器何时关闭。
答案 1 :(得分:0)
刚遇到这个,也许有帮助!
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
private function faultHandler(event:mx.rpc.events.FaultEvent):void
{
var faultInfo:String="fault description: "+event.fault.description+"\n\n";
faultInfo+="fault faultstring: "+event.fault.faultstring+"\n\n";
mx.controls.Alert.show(faultInfo,"Fault Information");
var eventInfo:String="event target: "+event.target+"\n\n";
eventInfo+="event type: "+event.type+"\n\n";
mx.controls.Alert.show(eventInfo,"Event Information");
}
]]>
</mx:Script>
<mx:HTTPService
fault="faultHandler(event)"/>
我自己使用了代码并发现了使用它需要进行的两项更改我认为它是FLEX 2代码。无论如何这里是FLEX 3代码!
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
private function faultHandler(event:mx.rpc.events.FaultEvent):void {
var faultInfo:String="fault details: "+event.fault.faultDetail+"\n\n";
faultInfo+="fault faultString: "+event.fault.faultString+"\n\n";
mx.controls.Alert.show(faultInfo,"Fault Information");
var eventInfo:String="event target: "+event.target+"\n\n";
eventInfo+="event type: "+event.type+"\n\n";
mx.controls.Alert.show(eventInfo,"Event Information");
}
]]>
</mx:Script>
答案 2 :(得分:0)
是的,我的工作方式与我发送它没有任何问题。不幸的是我无法帮助Linux等aktell