JavaとFlex/AIRをつなぐ「炎」のオープンソース
Tomcatを使ったサーバPushもできるBlazeDSとは?

クラスメソッド株式会社
友田 翼
2007/12/27


FlexからJavaメソッドを操作する

 まずは、Sample3からです。Sample3を開くと、データグリッドと「Get Data」と書かれたボタンが配置されたアプリケーションが実行されます。このボタンを押下すると、一覧にサンプルのデータが表示されます。

図2 Sample3の実行例
図2 Sample3の実行例

 このアプリケーションではリモーティングの機能である「RemoteObject」というFlexのクラスを使用しています。MXMLのソースは以下のようになっています。

<mx:RemoteObject id="srv" destination="product"/>
<mx:DataGrid dataProvider="{srv.getProducts.lastResult}"
    width="100%" height="100%"/>
<mx:Button label="Get Data" click="srv.getProducts()"/>

 RemoteObjectタグで「product」と名付けられたJavaオブジェクトにアクセスするためのオブジェクトを作っています。Buttonのclickイベントで、そのオブジェクトが持っている「getProducts」というメソッドをリモートコールしています。

 そして、その結果をDataGridのdataProviderにバインドするようにしています。これがRemoteObjectを使用した場合の基本的なリモートコールの仕方です。

 また、「product」という名前と対応するJavaクラスのマッピングは「WEB-INF\flex\remoting-config.xml」に設定されています。

<destination id="product">
    <properties>
        <source>flex.samples.product.ProductService</source>
    </properties>
</destination>

 この場合は、「flex.samples.product.ProductService」というJavaのクラスを指していることになります。ですので、ボタンをクリックしたらJavaクラスであるProductServiceにあるgetProductsメソッドを実行しその結果を一覧に表示することが可能になります。

サーバからのプッシュを実現

 次に、Sample6です。Sample6はサーバからのプッシュを受けて表示データを更新するアプリケーションです。

 アプリケーションを起動すると、「Subscrive〜」と表示されたボタンと「Unsubscribe〜」と表示されたボタンに、テキスト入力欄が配置されています。「feed」のプッシュをスタートさせている状態で「Subscribe〜」ボタンを押下すると、次々とテキスト入力欄に表示される数値が変わるはずです。

図3 Sample6の使用例(1)
図3 Sample6の使用例(1)

 また、「Unsubscribe〜」ボタンを押下すると、テキスト入力欄の表示更新が停止します。

図4 Sample6の使用例(2)
図4 Sample6の使用例(2)

 サーバからプッシュされるメッセージを受信するには、「Consumer」というFlexのクラスを使用しています。

<mx:Consumer id="consumer" destination="feed"
    message="messageHandler(event.message)"/>

 メッセージを受け取るための受信先をdestinationに指定し、メッセージを受け取った際の動作をmessageイベントに設定しています。

 このサンプルでは、messageイベントにmessageHandlerメソッドの実行が指定されています。このmessageHandlerメソッドは、以下のようになっていて、「pushedValue」というidが付けられたTextInputのtextプロパティを書き換えるようになっています。

private function messageHandler(message:IMessage):void{
    pushedValue.text = ""+ message.body;
}

 ですので、サーバからプッシュされるメッセージを受けるたびにTextInput内に表示されるテキストが変わるということになります。

 また、指定しているdestination自体の設定は「WEB-INF\flex\messaging-config.xml」に定義してあります。

 さらに次ページでは、チャットアプリケーションのサンプルとBlazeDSを使うのに便利なツールについて解説します。

1-2-3

 INDEX
JavaとFlex/AIRをつなぐ「炎」のオープンソース
  Page1
「炎のデータ・サービス」? BlazeDSとは何なのか?
論より証拠! BlazeDSを使ってみよう
Page2
FlexからJavaメソッドを操作する
サーバからのプッシュを実現
  Page3
Flexのチャットアプリケーション
開発に便利なツール「blazeds-console」
BlazeDSやLCDSは今後、どうなる?




HTML5 + UX フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日 月間