Flex 2でFDS2やLCDS2.5、WebOrbなどでrpcサービスを呼び出すときにはRemoteObject を使って接続しています。
しかし、このRemoteObjectは、Flex Builder 2やFlex 2 SDK でコンパイルするローカルコンパイル形式だとコンパイルするオプションに-service service-config.xmlを指定する必要があります。
以下例です。
-services "/Adobe/Flex Data Services 2/flex/WEB-INF/flex/services-config.xml" -locale ja_JP
この追加オプションなしでコンパイルしても、RemoteOjbectを使って接続できる方法が紹介されていました。
AMFChannelを含むChannelSet をActionScriptで生成しておき、RemoteObjectのインスタンスにセットするといったアプローチのようです。
Pepeさんのデモでは、service-config.xmlを動的に読み込んで利用する?といった方法だったと思いますが、内容は明らかにはされていません。
mxmlcは、コンパイルオプションが多いので、SDK単体のコマンドラインから指定する際には忘れがちです。
オプションを指定しなくもFDS2などと連携するswfを生成できるのはうれしいと思います。
S2Flex2と接続する時に利用するS2Flex2-Componentsでも作成当初はこの-serviceオプションを利用していました。
しかしながら-serviceオプションは設定ファイルのフルパスを指定する必要があり、サンプルプロジェクトをimportした後、各自の環境にあわせて設定変更する必要がでてきます。
そこで、-serviceに依存しないようにarkwさんに変更してもらいました。
現在は、S2Flex2-Componentsを利用する際には、urlのルールやgatewayURLを指定することで-service を指定しなくても接続することができます。
くわしくはこちらを参照してください。
LCDS2.5では、RuntimeConfigが導入されたようなので、今後どのように整理されていくかを見ていきたいと思います。
#-service オプション設定をしない方法はこのエントリーにありました。今年一月くらいのエントリーです。
Mike Nimer's Blog: Bye bye -services!
http://www.mikenimer.com/index.cfm/2007/1/10/Bye-bye-services
#CFでも同様にできるようです。
Creating Remote Objects in Actionscript instead of MXML to connect to CF
http://www.ryanguill.com/blog/?mode=entry&entry=35F1B39C-CF1D-7678-94BD10696BA2EC02
#S2Flex2-Componentsでの接続方法(asdoc)
org.seasar.flex2.rpc.remoting.S2Flex2Service
http://s2flex2.sandbox.seasar.org/ja/components/api/org/seasar/flex2/rpc/remoting/S2Flex2Service.html
この記事に対するコメント