페이로드에 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"과 함께 존재해야한다는 느낌이 들었습니다.
하지만 내가 틀 렸습니다. 위의 행동을 설명 할 수있는 사람이 있습니까?
'originalContentType : application/json; charset = UTF-8' - 토끼 바인더는 임의의 rabbitmq 응용 프로그램과의 통신을위한 것이 아닙니다. 그 목적을 위해'rabbit' sink를 사용하십시오. –
1. 그렇습니다. 제 소비자가 s-c-stream을 기반으로하지 않는 첫 번째 경우입니다. 그것은 완전히 다른 기술이며, 다른 누군가가 개발했습니다. 2. spring-cloud-stream 버전은'Chelsea.SR2' ('봄 구름 의존성 = Dalston.SR4')입니다. 3. 2.0.0.M3으로 업그레이드 하시겠습니까? 응용 프로그램이 제작 환경에서 작동합니다. 스프링 클라우드가 부착 된 스프링 부트 2의 공식 출시를 기다리고 싶습니다. –
@GaryRussell 당신은 스프링 - 클라우드 스트림을 기반으로하지 않는 소비자를위한 메시지 제작자로서 스프링 클라우드 스트림을 사용할 수 없다고 말합니까? "Rabbit Sink"가 무슨 뜻이야? –