0

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>

flashvar として読み込んだ init メソッドに wsdl を設定しました。何か案は?

呼び出しを行うために使用するコードは次のとおりです。

var id:Strig = Application.application.parameters.id;
mysERVICE.getname(id);

エラーがスローされたときに次のように表示されます

[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 は、パラメーターとして指定した wsdlUrl とは異なります。

app/services/RoomLookup

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


私はすでにこれをログに記録し、「Http Request error」を取得しています

4

3 に答える 3

4

ほとんどの SOAP および RPC フレームワークは、エラー応答の HTTP ステータス コードを に設定します500。Flash Player は、ステータス コードが 500 の HTTP 応答のコンテンツを処理できないため、操作が難しい場合があります。残念ながら、プレーヤーでこの問題を回避する方法はありません。したがって、最も一般的なアプローチは500、ユーザー エージェントが Flash Player であるリクエストに対して、サーバーがエラー応答の HTTP ステータスを に設定しないようにすることです。

于 2009-02-17T15:06:38.263 に答える
2

に次を追加しますfaultHandler()

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

それはあなたにピッキングを開始する何かを与えるでしょう.

于 2009-02-17T12:08:47.880 に答える
1

Fiddlerなどの http デバッガーを使用して、正確な要求/応答を調べます。Flex は SOAP エラーの詳細を公開しません。少なくとも以前は公開していませんでした。たとえば、ここを参照してください。

于 2009-02-17T12:18:04.503 に答える