Flex Builder 2.0.1での変更点(改善点)のひとつに、FDS2のプロジェクト作成の設定追加がありました。
これまで、クライアントコンパイルを選択すると、Flexコンパイラのコンパイラオプションに手動で-context-rootを追加しないと動作しなかったようです。
でもFlex2.0.1から、設定項目が追加になって、Context rootを設定する項目が追加されました。
このContext Root を入力することで、これまで手動で設定していた-context-root オプションをFlex Builder 2側で設定してくれるようになったようです。
これまで先人の方たちが行っていた検証結果をみて満足していたのですが^^;;年明けに自分の環境でも試してみました。
試したのは以下の通り。
まず最初に、RemoteObjectを使ったFDS2のアプリケーションを用意します。
Christophe さんが公開している、30 minutes Flex test-drive for Java developersをdownloadしてEclipseでTomcatプロジェクトにimportします。
Tomcatを起動してhttp://localhost:8080/testdrive/でFDS2が動作する状態にしておきます。
これで準備が完了です。
次にFlex builder 2(2.0.1)で新規プロジェクトを作成します。作成するときにFlex Builder でコンパイルする方を選択してRootURLに先ほど動作するようになったhttp://localhost:808/testdriveを入力してContext rootも/testdriveを選択します。
プロジェクトを作成したら、RemoteObjectを含むmxmlを作成します。localコンパイルを確認したいだけなので手っ取り早く試す事ができる、30 minutes Flex test-drive for Java developersにあるsampleをコピーして作成しました。
作成したmxmlを選択して実行すると、ローカルでコンパイルされたものがtestdriveで動作しているフォルダにコピーされてブラウザが起動しました。
http://localhost:8080/testdrive/testdrive-local/main.html
上記の例では、testdrive-localが新規に作成したFlex プロジェクト、main.htmlがsampleをコピーしたmxmlから生成されたhtml+ swfのセットです。
ボタンをクリックして、RemoteObjectの動作を確認したところ無事データが取得できました。
HTTPのheaderをみても、きちんと /testdrive/messagebroker/amf にアクセスしていることがわかります。
Context Rootの値を変更してテストしてみたら正しく動作しませんでしたので、この値が-context-rootに相当していると考えられます。
2.0.1は細かい修正点もたくさんありそうです。
FDS2にアクセスするアプリケーションをローカルでコンパイルする設定のポイントは、
- Context rootの設定
- Flexコンパイラの設定で--servicesがあること
- Output folderの設定
だと私は思います。(^^)v
Context rootの設定
Flex Builder 2.0.1から追加された設定でContext rootを設定する事で、これまで手動で設定していた --context-rootオプションが不要に。Flexコンパイラの設定で--servicesがあること
Flex プロジェクトを作成するときに、 Flex Data Servicesを選択することで、Flex Builder 2が自動的に設定するようになっています。Output folder の設定
プロジェクトのプロパティでFlex Build Path->Output folderにRoot Folderで指定したディレクトリ(=FDS2のウェブアプリケーションRoot)以下にFlexプロジェクト名のフォルダを指定していること。これもプロジェクト作成時にFlex Builder 2 が自動的に行うようです。
一度作成して設定ができると、アプリケーションの追加やデバッグも問題なくできました。\(^o^)/
#Christophe さんのページでFDS2.0.1 + Tomcat 5.5用に更新されたTestDriveが公開されています。
#関連するプロダクト(Spring2/Hibernate/JTOM/ActiveMQ..)のことなどもまとめられているので、Tomcatで動かすには必見です。
Flex Test Drive Server for Java Developers (Tomcat-based)
http://coenraets.org/blog/2007/01/flex-test-drive-server-for-java-developers-tomcat-based/
[仕事][Flex2]RemoteObjectが呼び出せない
http://d.hatena.ne.jp/masakas/20060720/1153384201
#FxUGのフォーラムにあったトピックみなさん苦労して作成した結果を公開してくださっています。これまでS2Flex2ばかりでFDS2はあまり触れていなかったのでとても参考になります。
Re: Tomcat+Eclipse+FDS2環境
http://www.fxug.net/modules/xhnewbb/viewtopic.php?topic_id=424&forum=7&post_id=1692#forumpost1692
#RemoteObjectを使ったときに、ローカルにコンパイルを指定すると動作しないのも2.0.1でプロジェクト作成したら解消される?のかもしれません。
FlexプロジェクトとRemoteObject
http://www.fxug.net/modules/xhnewbb/viewtopic.php?topic_id=563&forum=7&post_id=2023#forumpost2023
この記事に対するコメント