ActiveMQでJMSメッセージ変換をStomp / JSONとともに使用する方法

StackOverflow https://stackoverflow.com/questions/402651

  •  03-07-2019
  •  | 
  •  

質問

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

こちらは、ストンプおよびメッセージ変換に関するドキュメントへのリンクです。 こちらは、パッチに関する議論へのリンクです。誰かが正当なJSONオブジェクトの例を示しています

送信するJSONオブジェクトの形式(きれいな印刷)は次のようになります。

{
   "msg": {
      "flag1" : "value1",
      "flag2" : "value2"
   }
}

メッセージはメッセージキューに到着しますが、変換エラープロパティが 'msg:msg'に設定されています。

役に立ちましたか?

解決

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&quot ;,         " city":"ベオグラード"         }}

クラスに対して同じアプローチを使用してみてください。

これが役立つことを願って、 デジャン

他のヒント

変換jms-map-jsonまたはjms-object-jsonが受け入れる唯一の形式は、JSONでの単純なMap形式です:

{"map" : 
  {"entry" : 
    [ 
      { "string1": [ "key1", "value1" ] },
      { "string2": [ "key2", "value2" ] }
    ]
  }
}

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top