2017-09-27 6 views
0

C# MicroServicesとEasyNetQ、JavaとSpring Amqpの間でメッセージを送信する必要があります。Spring Ampqタイプ名とEasyNetQ

問題はプロパティメッセージで、SpringブートからのタイプAmqpはプロパティ__type__ヘッダーコンテナにあり、EasynetQではtypeという外部プロパティから予想されます。

誰も私もcomunicateにするためにカスタマイズする必要があることを教えてもらえますか?

Spring Amqp : 
    "Headers":{"__TypeId__":"com.fastdeliveryservice.service.Info"} 

    EasynetQ: 
     "type" : "com.fastdeliveryservice.service.Info" 

答えて

0

カスタマイズしたものとそのJackson2JavaTypeMapperを構成することにより、Jackson2JsonMessageConverterをカスタマイズすることができます。 DefaultJackson2JavaTypeMapperをサブクラス化してgetClassIdFieldName()メソッドをオーバーライドし、__TypeId__の代わりにtypeを返します。

+0

こんにちは私はそれをしましたが、代わりに "ヘッダー"配列の中に、reply_toのような他の所有権をsibillingしました:その他の質問、com.fastdeliveryservice.service.Info "名前空間をovverideすることは可能ですか? – Strom

+0

Ah ;ごめんなさい - それを逃した;あなたは 'MessagePostProcessor'を使って発信メッセージの' type'プロパティを設定し、同様のものは 'afterReceivePostProcessors'のinboundメッセージのtypeIdヘッダにタイプをコピーすることができます。コンバーターは 'type'プロパティを使用します。 –

+0

ありがとう。私はそれをしました!フィールドタイプは設定されていないので、私はそれを使用しました! – Strom

関連する問題