0

プロキシ(Apache)を介してTomcat5.5でBlazeDSでFlexを使用する際に問題が発生しました。私はすでにそれを検索しましたが、私の問題を解決する答えは見つかりませんでした。皆さんが私を助けてくれることを願っています。:-)

私たちのシナリオは次のとおりです。

BlazeDSを使用してTomcat5.5上のDataserviceと通信するFlex-App。Webappはbalze対応であり、servicesconfigには次のようなチャネル定義が含まれています。

<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
    <endpoint url="http://xxx.xxx.xxx.xxx:8180/myDataService/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint">
</channel-definition>

FlexサーバーのルートURLをhttp://xxx.xxx.xxx.xxx:8180/myDataService(コンテキストルート:/ myDataService)に設定し、このservices-configに対してflexアプリケーションをコンパイルします。

その後、フレックスアプリケーションとデータサービスをIPアドレスxxx.xxx.xxx.xxxのサーバーにデプロイします。http://xxx.xxx.xxx.xxx:8180/myFlexAppその後、またはデータサービス用に2つのアプリケーションを使用できますhttp://xxx.xxx.xxx.xxx:8180/myDataservice 。Tomcatはポート8180でリッスンしています。

IPアドレスを含むURLを使用してフレックスアプリケーションを開くと、すべてが正常に機能しています。私のアプリケーションは完全にデータを受信して​​います。

Ok。これまでのところすべて問題ありません。

次に、プロキシサーバー(apache httpサーバー経由)を使用してIPを非表示にし、ドメイン名を使用します。

services-configに次の変更を加えます。

<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
    <endpoint url="http://mydomain.com/data/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint">    
</channel-definition>

Flex ServerのルートURLをhttp://mydomain.com/data(Context Root / data)に設定し、このservices-configに対してflexアプリケーションをコンパイルします。

以前と同じTomcatにアプリケーションを再度デプロイします。

次に、apacheディレクトリ(etc / apache2 / sites-available /)のsites-available(sites-enabled)フォルダーにmydomain.comというエントリを作成します。ServerNamewww.mydomain.comとServerAliasmydomainを使用して仮想ホストを作成します。 com。また、Proxyブロックに必要なルールと、仮想ホスト定義に必要なその他のものを追加します。このファイルには、次のProxyPass/ProxyPassReverseエントリが含まれています。

ProxyPass /flexApp http://xxx.xxx.xxx.xxx:8180/myFlexApp
ProxyPassReverse /flexApp http://xxx.xxx.xxx.xxx:8180/myFlexApp

ProxyPass /data http://89.19.229.148:8180/myDataservice
ProxyPassReverse /data http://89.19.229.148:80/myDataservice

その後http://www.mydomain.com/flexApp、ブラウザでフレックスアプリケーションを開くことができ、ロードされます。ただし、ブレイズを使用してデータサービスに接続しようとすると、エラーメッセージがスローされます。URLを開くことさえできませんhttp://mydomain.com/data/messagebroker/amf。404エラーが表示されます。以前-IPアドレスを使用-空白のページが表示されていました。奇妙なことに、非ブレイズサーブレットは正常に機能しています。eG開くことができhttp://mydomain.com/data/myServlet、動作します。Blazeだけが機能しません。

この問題が発生する理由と、私がそれを解決する方法について何か考えがありますか。よろしくお願いします。あなたは本当に私を助けてくれています!!!

ヘンリック

4

2 に答える 2

0

リクエストのリダイレクトにAJPを使用しています。

// enable mod_proxy_ajp
a2enmod proxy_ajp

プロキシ構成は次のようになります。

ProxyPass /flexApp/messagebroker/ ajp://localhost:8009/flexApp/messagebroker/
于 2010-08-30T13:48:50.247 に答える
0

BlazeDS と Flex アプリの両方が、チャネル定義のエンドポイントで URL を使用しています。ただし、実際には異なる URL にする必要があります。BlazeDS は myDataservice/messagebroker/amf URL を使用する必要があり、Flex アプリは data/messagebroker/amf URL を使用する必要があります。したがって、両方の URL を同じにすることができます。データの代わりに myDataservice。または、Flex アプリで services-config ファイルを読み取る代わりに、チャンネル情報を手動で設定することもできます。

于 2010-02-06T15:16:21.650 に答える