2017-11-28 18 views
0

페이로드에 json 객체가 포함되어 있으므로 content type application/json으로 응답을 생성하고 싶습니다.spring-stream은 "application/json"대신 "text/plain"content-type을 사용하여 메시지를 보냅니다.

하지만 ... (RabbitMQ 기준) 내 봄 스트림은 항상 아래 헤더 (페이로드가 정확하고 JSON 양식을 가지고)와 메시지를 생성하는 이유

알고하지 마십시오. = 캐릭터 셋 UTF-8,

(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으로 동일합니다.

내가 좋아하는 구성으로 내용 유형을 설정하는 것을 시도했다 :

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

S-C-Stream 1.3 버전을 사용하고있는 것으로 보입니다. 확인해 주시겠습니까? 우리는 확실히 살펴볼 수 있습니다. 또한 FWIW, 전체 'originalContentType'문제는 SCSt 애플리케이션 인 소비자가있는 한 문제가되지 않지만 (예상대로 리셋 될 예정이므로), 맞지 않다고 가정하고 있습니까?

또한 2.0.0.M3으로 업그레이드 할 수 있습니다. contentType 해상도에서 많은 개선이있었습니다.

+0

'originalContentType : application/json; charset = UTF-8' - 토끼 바인더는 임의의 rabbitmq 응용 프로그램과의 통신을위한 것이 아닙니다. 그 목적을 위해'rabbit' sink를 사용하십시오. –

+0

1. 그렇습니다. 제 소비자가 s-c-stream을 기반으로하지 않는 첫 번째 경우입니다. 그것은 완전히 다른 기술이며, 다른 누군가가 개발했습니다. 2. spring-cloud-stream 버전은'Chelsea.SR2' ('봄 구름 의존성 = Dalston.SR4')입니다. 3. 2.0.0.M3으로 업그레이드 하시겠습니까? 응용 프로그램이 제작 환경에서 작동합니다. 스프링 클라우드가 부착 된 스프링 부트 2의 공식 출시를 기다리고 싶습니다. –

+0

@GaryRussell 당신은 스프링 - 클라우드 스트림을 기반으로하지 않는 소비자를위한 메시지 제작자로서 스프링 클라우드 스트림을 사용할 수 없다고 말합니까? "Rabbit Sink"가 무슨 뜻이야? –