Apache flex 为什么在有';没有连接到服务器吗?
我在Apache flex 为什么在有';没有连接到服务器吗?,apache-flex,Apache Flex,我在HTTPService周围有一个包装器,它处理结果、故障和调用事件,这些事件可能由send()方法触发。我已经验证了在成功请求、HTTP错误(例如404)和调用时调用了正确的事件处理程序 我正在测试本地主机上运行的Jetty。当它关闭时,我。E我的浏览器会给我“无法建立连接”,只会触发INVOKE事件,并且不会引发任何错误。这意味着调用正常完成,但从未发生任何事情,从而导致非常令人沮丧的用户体验 这里出了什么问题,这是一个bug还是我做错了什么?如何检测何时无法建立连接 我试着在调试器中单步
HTTPService
周围有一个包装器,它处理结果
、故障
和调用
事件,这些事件可能由send()
方法触发。我已经验证了在成功请求、HTTP错误(例如404)和调用时调用了正确的事件处理程序
我正在测试本地主机上运行的Jetty。当它关闭时,我。E我的浏览器会给我“无法建立连接”,只会触发INVOKE
事件,并且不会引发任何错误。这意味着调用正常完成,但从未发生任何事情,从而导致非常令人沮丧的用户体验
这里出了什么问题,这是一个bug还是我做错了什么?如何检测何时无法建立连接
我试着在调试器中单步执行框架的源代码,但这是另一个蠕虫,也是很多挫折的根源。显然,我似乎找不到正确的SDK版本(在SDK附带的源代码不起作用之后,我尝试了3.0到3.5版本),因为调试器跳转到了错误的行。我使用版本3.5时感觉最深,但随后它又失去了同步,在
AsyncInvoker.invoke()中的某个地方。我正在运行Flex Builder Linux,alpha 5。这对我来说适用于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>
导入mx.controls.Alert;
srv.send();
警报。显示(“无法连接”);
此警报显示我的本地服务器何时关闭。刚刚遇到此警报,可能会有所帮助
<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)"/>
我只是自己使用了这段代码,发现要使用它,您需要做两个更改,我认为这是Flex2代码。无论如何,这里是Flex3代码
<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>
是的,我的手机按我发送的方式工作,一点问题也没有。不幸的是,我无法帮助你学习Linux等。aktell很有趣。我不使用MXML组件,而是使用AS类(即mx.rpc.http.HTTPService
而不是mx.rpc.http.MXML.HTTPService
)。我将介绍一下您的代码,看看它是如何工作的。您可以通过在HTTPService实例上注册错误事件处理程序来完成此操作。谢谢。这是詹姆斯代码的一个稍微冗长的版本。对你有用吗?您和James对我的代码的主要区别在于,我使用的是MXML组件的基类。我来试一试。