2011-10-25 9 views
0

私はFlash Builder 4.5とflex 4.5言語を使用しています。 jsonで.phpを呼び出してデータを取得するためにWebサービスを使用しています。Flex Webservice

<webservice:Webservice id="webservice" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true"/> 
<s:CallResponder id="testResult" result="onTestResult(event)"/> 

... 

private function onTestResult(e:ResultEvent):void{ 
    Alert.show(ObjectUtil.toString(testResult.lastResult)); 
} 

Flash Builderの[テスト操作]ウィンドウで私は呼び出しを行い、戻り値は配列によって作成されたjsonオブジェクトです。

コードから同じWebサービスを呼び出すと、(オブジェクト)#0が返され、空のObjectになります。エラーは発生せず、ただ空のObjectです。

誰かにヒントがありますか?

+0

Webサービスにアクセスしていますか?サーバーログの更新はありますか? – kbgn

答えて

0

Webserviceクラスのns接頭辞は、フレームワークWebServiceクラスではなくカスタム実装を使用していることを示唆しています。しかし、あなたは暗黙のうちに振る舞います。

カスタムサービスがHTTPServiceクラスに基づいている場合は、resultFormat='text'を設定していることを確認してください。デフォルトはXMLで、問題の原因となります。

フレームワークWebServiceクラスを使用している場合は、JSONではなくSOAP Webサービス向けに設計されているため、できません。 (mx.rpc.soap.WebServiceのためのドキュメントから:)

WebServiceクラスは リモートサーバー上のSOAPベースのWebサービスへのアクセスを提供します。

他の実装の場合は、詳細を入力してください。

+0

問題はresultFormatにありました。私はジェネリックObject()を設定しましたが、フレックスは変換myResult - > Objectが好きではないようですので、返されたJSONシリアライズされた配列として正確に名前が付けられ、データが正しく挿入されたカスタムmyObjectType() 。 – Riccardo