0

私の Flex フロントエンドは、BlazeDS/Tomcat を使用してリアルタイム データを収集しています。
標準のストリーミング amf チャネルでプレーン コンシューマーを使用しています。

<mx:ChannelSet id="channelSet">
 <mx:StreamingAMFChannel id="streamingAMF" url="messagebroker/streamingamf/" />
</mx:ChannelSet>
<mx:Consumer id="consumer" channelSet="{channelSet}" 
             channelConnect="consumer_channelConnectHandler(event)" 
             channelDisconnect="consumer_channelDisconnectHandler(event)" 
             message="consumer_messageHandler(event.message)"  
             fault="consumer_faultHandler(event)"
             resubscribeAttempts="-1" 
             resubscribeInterval="2000"/>

このセットアップは、以下を除くすべてのセットアップで問題なく機能します。目に見える不一致は次のとおりです。

  • Windows 2008 サーバー vs Linux 以前の Windows
  • Java 1.7.0 対 1.6.0
  • Tomcat 7.0 対 6.0

症状は、 consumer.subscribedがtrueに設定されないことです。ただし、consumer.subscribe()が呼び出され、サーバー側で確認されます。

[BlazeDS]13:49:03.922 [DEBUG] [Endpoint.FlexSession] FlexSession created with id '275E7BE0E76EC4C4E8DB08F770BE2846' for an Http-based client connection.
[BlazeDS]13:49:03.922 [INFO] [Endpoint.General] Channel endpoint skydata-streaming-amf received request.

すべてのログ (catalina、stdout、および stderr) を確認しましたが、何が問題なのかについての目に見える手がかりはありませんでした。繰り返しますが、これとまったく同じセットアップが他のすべてのインスタンスで機能します

。何かアイデアはありますか?

4

2 に答える 2

1

この問題は、Tomcat 7.0から Tomcat 6.0 に戻すことで発生し、すぐに修正されました。Tomcat 7 で BlazeDS を修正する

ためのハックがここにあります。

于 2012-07-13T14:42:11.923 に答える
0

コンシューマの接続プロパティを確認します。また、可能であれば、チャネル セットの構成も投稿してください。

私は Tomcat7 を使用してきましたが、問題はありませんでしたが、Servlet 3.0 仕様に基づいており、複数のクライアントをサポートする可能性があるため、Tomcat7 を使用しています。ここで見つけました。

于 2012-07-13T04:10:50.220 に答える