2017-09-27 40 views
0

我需要發送消息在C#微型服務與EasyNetQ和Java與Spring Amqp。Spring Ampq類型名稱和EasyNetQ

問題是屬性消息,類型從Spring Boot Amqp在屬性__type__標題容器中,而在EasynetQ中預期來自名爲type的其他屬性。

任何人都可以告訴我我需要自定義以讓它們交流嗎?

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

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

回答

0

您可以通過定製一個配置其Jackson2JavaTypeMapper定製Jackson2JsonMessageConverter。子類DefaultJackson2JavaTypeMapper並覆蓋getClassIdFieldName()方法返回type而不是__TypeId__

+0

嗨,我做到了,但它仍然在裏面的「標題」數組,而不是它的外面,同樣的其他問題,如reply_to:等。其他問題,它可能會ovverside「」com.fastdeliveryservice.service.Info「命名空間? – Strom

+0

啊;抱歉 - 錯過了;你可以使用'MessagePostProcessor'來爲外發消息設置'type'屬性,類似的將類型複製到入站消息的typeId頭部(在'afterReceivePostProcessors'中)。轉換器使用'type'屬性 –

+0

謝謝,我做到了!有一個字段類型沒有設置,所以我用它! – Strom