6

メッセージを JSON 形式で ActiveMQ サーバーに送信しています。内部のデータでセレクターを使用できるようにするために、JMS Transformation を使用して、JSON でエンコードされたオブジェクトを真の Java オブジェクトに変換しようとしています。

Stomp と Message Transformation に関するドキュメントへのリンクは次のとおりです これは、誰かが正当な JSON オブジェクトの例を示しているパッチに関するディスカッションへのリンクです

私が送信している JSON オブジェクトの形式 (整形式) は、次のようになります。

{
   "メッセージ": {
      「フラグ1」:「値1」、
      「フラグ2」:「値2」
   }
}

メッセージはメッセージ キューに到着しますが、transformation-error プロパティが「msg : msg」に設定されています。

4

3 に答える 3

5

変換jms-map-jsonまたはjms-object-jsonで受け入れられる唯一の形式は、単純なMap形式であり、JSONでは次のようになります。

{"マップ":
  {"エントリ":
    [
      {"string1":["key1"、 "value1"]}、
      {"string2":["key2"、"value2"]}
    ]
  }
}

これは、ディスカッションフォーラムに表示されているのと同じ形式です。この形式は、Javaの名前/値ペアマップオブジェクトを表します。

セレクターは、プロパティとヘッダーでのみ使用できます。

于 2008-12-31T11:52:06.257 に答える
3

XStream が処理できる限り、jms-object-json 変換に任意の JSON 表記を使用できます。いくつかの例については、テスト ケースを参照してください。そこで、SamplePojo クラスを使用します。

https://svn.apache.org/repos/asf/activemq/trunk/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/SamplePojo.java

これは適切に注釈が付けられているため、次の JSON で表すことができます

{"pojo":{ "name":"Dejan", "city":"ベオグラード" }}

クラスに同じアプローチを使用してみることができます。

これが役に立てば幸いです、Dejan

于 2009-01-05T12:16:13.153 に答える