Flex呼び出しwebService

6298 ワード

今日は手元に余裕がないので、Flexがwebserviceを呼び出す方法を学びます.ローカルテストOKで皆さんと分かち合います.
——————————————————————————————————————————————————————————
 
1.まずウェブサービスを作成する必要があります.(ここ略)
2.Flexで新規作成mxmlファイル
ノードで次のように記述します.
1         <s:WebService id="myWeb" wsdl="http://localhost:8080/Demo/webService/demos?wsdl">
2             <s:operation name="process" result="response(event)" fault="fault(event)" />
3         </s:WebService>

 
コード摘要::ラベルによりSOAP対応Webサービスへのアクセスが可能
id:後のコードはこの名前で使用されます.この名前でウェブサービスを呼び出す
wsdl:自分で作成したwebServiceが公開したアドレス
<:operation>:webServiceでメソッドを呼び出す
name:呼び出しWebServiceメソッド名は、WebServiceで定義されているものと一致する必要があります.
result:宣言結果ハンドラ
fault:宣言エラーハンドラ
 
ノードを新規作成し、次の内容を挿入します.
 1     <fx:Script>
 2         <![CDATA[
 3             import mx.controls.Alert;
 4             import mx.rpc.events.FaultEvent;
 5             import mx.rpc.events.ResultEvent;
 6             
 7             public function getOrderFun():void{
 8                 myWeb.process.send(this.username.text);
 9             }
10             
11             public function response(e:ResultEvent):void{
12                 this.responseText.text = e.result.toString();
13             }
14             
15             public function fault(e:FaultEvent):void{
16                 Alert.show(e.message.toString());
17             }
18         ]]>
19     </fx:Script>

コードの説明:
コマンドボタンメソッドgetOrderFunによってwebServiceを呼び出す
responseメソッドは結果ハンドラです
faultメソッドはエラーハンドラです
 
コントロールコードの作成:
1     <s:Label text=" " x="50" y="75" />
2     <s:TextInput id="username" x="118" y="71" />
3     <s:Button id="button" x="255"  y="71" label=" " click="getOrderFun()"/> 
4     <s:TextInput id="responseText" x="118" y="117" />
5     <s:Label text=" " x="51" y="121" />

コードの説明:
ユーザーはテキストボックスにデータを入力し、「発行」ボタンをクリックすると、responseTextにwebServiceが提供するprocessメソッドの戻り値を表示できます.
Flexがウェブサービスを呼び出すのに成功しました.
 
——————————————————————————————————————————————————————————————
 
注意:
このプログラムで呼び出されるwebServiceでのprocessメソッドは非常に簡単で、次のように定義されています.
1 public String process(@WebParam(name = "testID") String testID);

実現も簡単です.
1     public String process(String ticketID) {
2         return ticketID + "webService  ";
3     }