2017-11-28 8 views
0

jsonオブジェクトがペイロードに含まれているため、content type application/jsonのキューに応答を生成します。 (RabbitMQのに基づいて)私の春ストリームは、常に以下のヘッダ(ペイロードが正しいとJSON形式を持っている)とのメッセージを生成する理由spring-streamは "application/json"の代わりに "text/plain" content-typeを持つメッセージを送信します

しかし...

は知ってはいけません。

(view from rabbit ui) 
properties: 
    delivery_mode: 2 
    headers:  
     contentType: text/plain 
     originalContentType: application/json;charset=UTF-8 
    content_type: text/plain 

のでCONTENT_TYPEではなくアプリケーション/ JSONのtext/plainのに等しい;のcharset = UTF-8

私のような構成でコンテンツタイプを設定しようとしています

spring: 
    cloud: 
    stream: 
     default: 
     content-type: application/json 
     bindings: 
     my-channel: 
      content-type: application/json 
      destination: my-channel-rs 
      producer: 
      exchange-type: direct 
      max-length: 1000 

が、助けにはなりませんでした。

私は、正しい応答では、単一のヘッダーのコンテンツタイプが値 "application/json"で存在する必要があるという感覚を持っています。

しかし、多分私は間違っていますか?誰も上記の行動を説明することができますか?

答えて

2

あなたは1.3バージョンのS-C-Streamを使用しているようです。確認お願いいたします?私たちは確かに一見することができます。 また、FWIWは、 'originalContentType'の問題は、消費者がSCStアプリケーションである限り、問題はありません(期待どおりにリセットされるため)が、正しくないと仮定していますか?

また、2.0.0.M3にアップグレードすることもできます。 contentType解像度で多くの改善が行われました。

+0

'originalContentType:application/json; charset = UTF-8' - ウサギバインダーは、任意のrabbitmqアプリケーションとの通信を意図していません。その目的のために 'ウサギ'シンクを使用してください。 –

+0

1.はい、私の消費者がs-c-streamを基盤としていない最初のケースです:)それは全く別の技術であり、他人が開発したものです。 2. spring-cloud-streamのバージョンは 'Chelsea.SR2'(' spring cloud dependencies = Dalston.SR4')です。 3. 2.0.0.M3にアップグレードしますか? アプリケーションは本番環境で動作します。私はむしろスプリングクラウドが付いたスプリングブート2の公式リリースを待っています。 –

+0

@GaryRussellあなたは、春 - 雲流に基づいていない消費者のためのメッセージのプロデューサーとして春 - 雲 - 流れを使用することはできないと言いますか? 「うさぎのシンク」はどういう意味ですか? –

関連する問題