RemoteObjectが呼び出せない。
Flex2で、RemoteObjectの呼出のサンプルを作っていたら、RemoteObjectの呼出時に以下のエラーが発生。
[RPC Fault faultString="Send failed" faultCode="Client.Error.MessageSend" faultDetail="Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Failed"]
services-config.xmlやremoting-config.xmlを確認したけどおかしなところはない。
分からないので、リクエストをキャプチャしたところ。
/messagebroker/amf
のように、コンテキストルートが抜けたパスでアクセスしていることが判明。
サーバには、/messagebroker/amf
というパスは存在しないので、404が返されていた。
なので、コンテキストルートを設定するファイルがないか探してみたところ。
flex-config.xml の中にあった。
/flex
が、ここを直してもなおらず。
どうやら、ここの設定は、MXMLが呼び出されたときにサーバ上でSWFを生成するときの、コンパイラの引数らしい。
ローカルでMXMLをコンパイルする場合は、別のところで引数をしていしないとならない。
Flex SDKの mxmlc のヘルプを見たところ、それっぽいのがあることが判明。
で、EclipseのFlexプロジェクトのPropertiesの中にあるFlex Compilerの"Addtional compiler arguments"に、以下のオプションを追加。
-context-root /hogehoge-sample
これでうまく動いた。