質問

のFlex 3とWebServiceコンポーネントを使用してイム。私は入門次の障害

 HTTP request error

サービスメソッドへの呼び出しを行うとき。このエラーは現れたと私は

それを引き起こしていただきまし把握カント
 <mx:WebService
    useProxy="false"
    id= "myService">
         <mx:operation name="getName" resultFormat="object"
        result="getNameResultHandler(event)"
        fault="faultHandler(event)"/>
 </mx:WebService>

私は、WSDLは、私がのFlashVarとして読み込ま私のinitメソッドをイム設定しました。任意のアイデア?

次のように

私は電話をかけるために使用するコードが進み、

var id:Strig = Application.application.parameters.id;
mysERVICE.getname(id);
<時間>

エラーがスローされたときに、次のを見て、[OK]イム

[RPC Fault faultString="HTTP request error" faultCode="Server.Error.Request" faultDetail="Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Stream Error. URL: http://localhost:9081/app/services/RoomLookup"]. URL: http://localhost:9081/`app/services/RoomLookup`"]

が示すURLは、iが

は、パラメータとして供給TEH wsdlUrlに異なっています
app/services/RoomLookup

ローカルホストを追加するか、これはキャッシュに保存されたものになる可能性があるフレックス

<時間>

私はすでにこれをログに記録してもらう「HTTPリクエストエラー」

役に立ちましたか?

解決

ほとんどのSOAPとRPCフレームワークは500にエラー応答のHTTPステータスコードを設定します。 Flash Playerは、ステータスコード500であるので、で動作することが困難な場合がHTTPレスポンスの内容を処理することができません。残念ながら、そこにプレーヤーにこの問題を回避する方法はありませんので、最も一般的な方法は、サーバーがそのユーザーエージェントのFlash Playerで要求のため500するエラー応答のHTTPステータスを設定しないことを確実にするためであると考えられます。

他のヒント

faultHandler()に以下を追加します:

trace(event.fault.faultString, "Error");
if (event.fault is SOAPFault) {
    var fault:SOAPFault=event.fault as SOAPFault;
    var faultElement:XML=fault.element;
    // ...
}    

これはあなたの狩りを開始するために何かを与えるでしょう。

正確な要求/応答が何であるかを見つけるためにフィドラーのようなHTTPデバッガを使用してください。 Flexは、石鹸のエラーの詳細を公開していない、あるいは少なくともそれがに使用していませんでした。例えば、ここを参照してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top