Top > MyPage
 

ひとつのAir内に複数のRemoteObject Ver.1

はじめに

Airアプリから複数のサーバーのjavaオブジェクトを利用するための設定の仕方について軽くふれる。なお、すでにサーバー側にはBlazeDSを用いてサービスを提供する環境があるという前提で、クライアント側の設定のみについて触れることにする。

FlexBuilder3で新規プロジェクトを作成

プロジェクト作成時の設定

まず、FlexBuilderのメニューで「Flexプロジェクト」の新規作成をします。

新規作成

次の図のように、デスクトップアプリケーションを選択して、「リモートオブジェクトアクセスサービスを使用」にチェックを入れて、アプリケーションサーバーの種類はJ2EEを選択してください。そして、次へ進んでください。

アプリケーションの種類設定

次の画面では、自分の開発環境のサーバーの設定を行います。このとき、トムキャット上で、LiveCycleデータサービスサーバーとなるアプリケーション(BlazeDSでサービスを提供するやつ)が動作している必要があります。正しく設定できたら次へ進めて、ソースファイル名などは適当に決めて、終了でプロジェクトが追加になります。

2

ソースの編集

ソースの中身は以前作ったウェブアプリケーションのFlexのものを流用しました。その中に次のような部分があります。ボタンを押すとリモートオブジェクトroのgetString()をたたいて、かえってきたStringをテキストボックスに表示するのです。

<mx:RemoteObject id="ro" destination="myRO"/>
	<mx:TextInput x="219" y="61" width="276" height="25" \
    text="{ro.getString.lastResult}"/>
	<mx:Button x="293" y="94" label="call getString()" width="127" height="27" \
    click="{ro.getString()}"/>
</program>
<p>
この中の次の部分がポイントです。これはクライアントから使用するリモートオブジェクトを宣言している部分です。ウェブアプリの場合はクライアントが置いてあったサーバにアクセスするのでこれで動作します。
</p>
<program>
<![CDATA[
<mx:RemoteObject id="ro" destination="myRO"/>

Airでリモートオブジェクトを使用したい場合はendpointを設定する必要があります。例えば、ローカルホストのsamPIJavaがリモートオブジェクトのサーバーならこんな感じ

<mx:RemoteObject id="ro" destination="myRO" \
    endpoint="http://localhost:8080/SamPIJava/messagebroker/amf"/>

エンドポイントを変えることで、違うサーバーのリモートオブジェクトを使うことができます。

<mx:RemoteObject id="ro" destination="myRO" \
    endpoint="http://localhost:8080/SamPIJava/messagebroker/amf"/>
<mx:RemoteObject id="ro2" destination="myRO" \
    endpoint="http://192.168.0.44:8080/SamPIJava/messagebroker/amf"/>

このように設定すればroはローカルホストのリモートオブジェクトを使用して、ro2の方は192.168.0.44のリモートオブジェクトを使用することになります。