メソッド | フレームあり | フレームなし

mx.servicetags
Service クラス


直接の既知のサブクラス
           mx.servicetags.RemoteObject

Service クラス

<mx:WebService> タグは、MXML ファイル内で Web サービスを表すために使用されます。Flex コンパイラは、<mx:WebService> タグの中で参照されている WSDL ドキュメントを読み取り、目的の動作を実装する ActionScript コードを生成します。WSDL URL は、ドキュメントを格納した静的ファイル、または動的に生成されるドキュメントを指すことができます。また、serviceName を指定して、サーバーにある "flex-config.xml" ファイルに WSDL ドキュメントを保存することもできます。

WSDL ファイルに複数のサービスまたはポートが定義されている場合は、service プロパティまたは port プロパティを使用して、特定のサービスまたはポートを指定できます。

MXML シンタックス

<mx:WebServic> タグには、次のプロパティを使用できます。

 <mx:WebService
concurrency="multiple|single|last"
fault="No default."
id="No default."
load="No default."
port="No default."
protocol="http|https"
result="No default."
service="No default."
serviceName="No default."
showBusyCursor="false|true"
wsdl="No default."
/>

これらのプロパティについては、http://livedocs.macromedia.com/flex で入手できる『Flex アプリケーション開発ガイド』の「データサービスの使用」に解説があります。

メモ : HTTP でサービスされている Flex アプリケーションから HTTPS を介して Web サービスにアクセスするには、protocol プロパティを https に設定する必要があります。

<mx:WebService> タグの下には、Web サービスの操作を表す <mx:operation> タグを複数置くことができます。<mx:operation> タグには、次のプロパティがあります。

 <mx:operation
concurrency="multiple|single|last"
fault="No default."
name="No default, required"
result="No default."
resultFormat="object|xml"
/>

<mx:operation> タグの下には、次のプロパティを持つ <mx:request> 子タグを 1 つ置くことができます。

 <mx:request
format="object|xml"
/>
<mx:request> タグの下には子タグを置くことができます。format プロパティに object が設定されている場合、これらの子タグは、サービスに送信するために指定されたパラメータを表します。この場合、タグの順番は、重要ではありません。format プロパティに xml が設定されている場合、本体は Web サービスに送信する SOAP 要求を表します。

を参照するにはここをクリックしてください

メソッド
       addHeader( header:mx.services.SOAPHeader) :  Void
この Web サービスのすべての操作に適用されるヘッダを追加します。
       addSimpleHeader( qnameLocal:String, qnameNamespace:String, headerName:String, headerValue) :  Void
この WebService のすべての操作に適用されるヘッダを追加します。
       clearHeaders( ) :  Void
すべての操作のヘッダをクリアします。
       clearUsernamePassword( ) :  Void
証明書 SOAP ヘッダに加え、現在のユーザー名とパスワードも削除します。
       setEndpointURI( newEndpointURI:String) :  Void
すべての操作の終点をリセットします。
       setUsernamePassword( username, password) :  Void
入力されたユーザー名とパスワードを証明書 SOAP ヘッダとして要求に追加します。



メソッドの詳細

addHeader

addHeader( header:mx.services.SOAPHeader) :  Void

この Web サービスのすべての操作に適用されるヘッダを追加します。

パラメータ
    header:mx.services.SOAPHeader - 実際のヘッダです。


addSimpleHeader

addSimpleHeader( qnameLocal:String, qnameNamespace:String, headerName:String, headerValue) :  Void

この WebService のすべての操作に適用されるヘッダを追加します。

パラメータ
    qnameLocal:String - ヘッダ QName のローカル名です。
    qnameNamespace:String - ヘッダ QName の名前空間です。
    headerName:String - ヘッダの名前です。
    headerValue - ヘッダの値です。単純な値の場合は String、基本的な XML エンコードを使用する場合は Object、ヘッダ XML を自分で指定する場合には XML を指定します。


clearHeaders

clearHeaders( ) :  Void

すべての操作のヘッダをクリアします。
メモ : このメソッドはグローバルなヘッダのみでなく、個々の操作で設定されたヘッダもすべて消去します。


clearUsernamePassword

clearUsernamePassword( ) :  Void

証明書 SOAP ヘッダに加え、現在のユーザー名とパスワードも削除します。メソッド名 clearUsernamePassword() はこのライブラリ用に保持されているため、同じ名前を持つリモート Web サービスのメソッドは特定されにくくなります。


setEndpointURI

setEndpointURI( newEndpointURI:String) :  Void

すべての操作の終点をリセットします。これは Web サービスがロードバランシングを行っている場合に便利です。

パラメータ
    newEndpointURI:String - 新しい終点です。プロキシ変更は内部的に処理すため、これには含みません。このパラメータはエスケープしないでください。


setUsernamePassword

setUsernamePassword( username, password) :  Void

入力されたユーザー名とパスワードを証明書 SOAP ヘッダとして要求に追加します。メソッド名 setUsernamePassword() はこのライブラリ用に保持されているため、同じ名前を持つリモート Web サービスのメソッドは特定されにくくなります。

パラメータ
    username - 送信するユーザー名です。
    password - 送信するパスワードです。


WebServiceExample.mxml
<?xml version="1.0" encoding="utf-8"?>
<!-- この例をローカルで実行する手順です。
このインストール手順は、スタンドアローンサーバーをインストールした場合にのみ有効です。また、以下の場所の samples.war アプリケーションに
この例を保存したときにのみ有効です。
 
手順 :
1. "WebServiceExample.mxml" をコピーし、"c:\\FLEX_HOME_DIR\jrun4\servers\default\samples\dataModel" フォルダの下に
保存します。 
	  
2. この例はこの後に実行します。 -->

<!-- WebService の使用方法を示す簡単な例 -->
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" backgroundColor="#FFFFFF">

<mx:Script>
<![CDATA[
var tent:Object;
var imageName;

function getMyTent()
           {
ws.getTent.send();
           }

function tentResultHandler(event)
           {
tent= event;
imageName= tent.sku; 
           }

       ]]>
</mx:Script>

<mx:Style>
.title{fontFamily:Arial;fontWeight:bold;color:#3D3D3D;fontSize:16pt;}
.flabelColor{fontFamily:Arial;fontWeight:bold;color:#3D3D3D;fontSize:11pt}
.productSpec{fontFamily:Arial;color:#5B5B5B;fontSize:10pt}
</mx:Style>

<mx:WebService id="ws" serviceName="DataModelInventoryWS" load="getMyTent();" concurrency="single">
<mx:operation name="getTent" result="tentResultHandler(event.result)">
<mx:request>
<sku>t01</sku>
</mx:request>
</mx:operation>
</mx:WebService>

<mx:Panel title="Web Service Panel">
<mx:Tile>
<mx:Canvas>
<mx:Image source="./images/{imageName}.jpg"/>
</mx:Canvas>
<mx:Form>

<mx:FormHeading label="{tent.name}" verticalGap="1" styleName="title"/>

<mx:FormItem label="Capacity" styleName="flabelColor">
<mx:Label text="{tent.capacity} person" styleName="productSpec"/>
</mx:FormItem>
<mx:FormItem label="Season" styleName="flabelColor">
<mx:Label text="{tent.season}" styleName="productSpec"/>
</mx:FormItem>
<mx:FormItem label="Type" styleName="flabelColor">
<mx:Label text="{tent.type}" styleName="productSpec"/>
</mx:FormItem>

</mx:Form>
</mx:Tile>
</mx:Panel>

</mx:Application>