私はFlexアプリケーションから実行時にアクティブなサーバのアドレス、ポート、コンテキストを取得する方法が必要です。ビルドプロセスにはantを使用しているので、サーバー接続情報はビルドプロパティファイルで動的に指定され、{server.name}、{server.port}および{context.root}プレースホルダはservices-config .xmlファイルではなく、実際の値。実行中のフレックスアプリケーションでサーバーエンドポイントを取得するにはどうすればよいですか?
私たちはblazeDSサーバーと同じマシン上で実行されているいくつかのJavaサーブレットを持っています。サーブレットURLをXMLファイルにハードコードする必要がないように、プログラムでサーバーエンドポイント情報を判別する方法がありますこれは私たちが現在行っていることです)。
私は、少なくとも私たちのメインのアプリケーションMXMLファイルに以下を追加することにより、コンテキストルートを得ることができることを見出した:しかし、私はまだサーバーのアドレスとポートを取得するいくつかの方法が必要です
<mx:Application ... >
<mx:HTTPService id="contextRoot" rootURL="@ContextRoot()"/>
</mx:Application>
、および-context-root = http://myserver.com:8080/mycontextを指定してアドレス全体を指定すると、flexアプリケーションはhttp://localhost/http://myserver.com:8080/mycontext/messagebroker/amfに接続しようとしますが、これはもちろん間違いです。コンテキストルートとサーバーのURLを指定する適切な方法は何ですか?アプリケーションからそれらを取得するにはどうすればよいですか。
Javaサーブレットを使用しているのですか、単にhttpserviceを使用していますか?あなたの質問に正確に従っているか、正確に何をしているかはわかりませんが、リモートオブジェクトでは、services-config.xmlファイルを使用するか、コンパイラオプションに入れる必要はありません。あなたは精緻化できますか? –
我々は両方を使用しています。私たちにはHTTPエンドポイントがあり、いくつかの追加タスクのために別々のJavaサーブレットがあります。私たちはリモートオブジェクトを使用していません。すべてのメッセージの処理はCairngormによって行われます。 –