2016-12-02 9 views
-1

私はActiveMQの上でキューにこのオブジェクトを送りたいJSONオブジェクトをActiveMQに送信する方法は?

org.json.JSONObject json = new JSONObject(jsonString); 

以下のように私はJSONオブジェクトを作成しています。 私は、次のAPI

objectMessage.setObject(json); 

を使用しようとしていた。しかし、JSONオブジェクトが直列化可能ではないとして、コンパイラはエラーを投げています。

jsonオブジェクトをStringに変換すると、動作しています。

jsonオブジェクトを(文字列に変換せずに)キューに直接転送できる方法はありますか?

+0

なぜJSONをペイロードとしてHTTPリクエストを送信しますか? – DerStoffel

+0

JSONObjectをワイヤで送信する理由はありますか?このオブジェクトを作成するには、とにかく文字列表現を使用しています。なぜそれを使用しないのですか。 jsonを表すPOJOクラスがある場合(例えばjacksonやgsonを使用している場合)、これらのオブジェクトを直列化して送信できますが、文字列表現ほど効率的ではありません。 – jay

+0

こんにちはDerStoffel私に例を教えていただけますか? – Sachin

答えて

1

..jms.ObjectMessageを使用しないでください。あらゆる種類の苦痛、苦しみ、怒りにつながります。 JSONを文字列にシリアル化し、代わりに..jms.TextMessageを送信します。

言われています。あなたのユースケースによって異なります。クロスプラットフォームやサービスの独立性の理由から、トランスポート時にテキストベースのフォーマットを優先するアーキテクチャ上の原則があります。同じアプリケーションがJMS上でデータを共有するユースケースの場合、ObjectMessagesを使用して、その引数を正当化することができます。これを行うには、JSON pojoを「.. Serializableを実装する」に更新してから、jms.ObjectMessageが機能します。

+0

これは私が今やっていることです。 JSONをStringに変換して文字列を使用しています – Sachin

+0

もっと良い方法はありますか? – Sachin

+0

編集を参照してください。 "より良い"はかなり主観的な目標です。あなたのユースケースに最も適した答えを提供するための詳細が必要です –

関連する問題