Изменить тип содержимого для приложения RabbitMQ Spring Cloud Stream Starter

Документация для Spring Cloud Stream Starter Apps для приложения RabbitMQ Source перечисляет несколько возможных типов контента, каждый из которых имеет свой результирующий тип для выходных данных. Однако здесь не сказано, как выбрать, какой из них вы хотите использовать. Я развертываю поток данных Spring Cloud, соединяющий источник Rabbit с приемником журнала, и все, что я получаю, - это массив байтов. Даже когда я явно устанавливаю тип содержимого «text / plain» в заголовке сообщения Rabbit, он отображается в приемнике журнала как полезная нагрузка массива байтов с заголовками: «contentType = application / octet-stream, originalContentType = text / plain» .

У меня смутное представление, что ответ - установить spring.cloud.stream.bindings.output.content-type для типа контента, который я хочу, чтобы источник Rabbit выводил, но я не знаю, где поместить этот параметр в поток данных Spring Cloud. Я новичок в этом и очень запутался.


person Greg Charles    schedule 16.12.2017    source источник


Ответы (1)


Вы можете передать свойства Spring Cloud Stream в Spring Cloud Data Flow через свойства развертывания.

Вы можете найти дополнительную информацию об этом здесь

person Ilayaperumal Gopinathan    schedule 17.12.2017
comment
Грег, были внесены некоторые изменения и улучшения в согласование типов контента как в spring-amqp, rabbit-binder, так и в spring-cloud-stream, и то, что вы пытаетесь достичь, определенно достижимо, однако было бы очень полезно, если бы вы могли сказать нам, какую версию spring-cloud-stream вы используете в настоящее время. - person Oleg Zhurakousky; 17.12.2017
comment
Что ж, могу сказать, что я использую стартовое приложение maven: //org.springframework.cloud.stream.app: http-source-rabbit: 1.3.0.RELEASE. Я регистрирую это в spring-cloud-dataflow-server-local-1.3.0.BUILD-SNAPSHOT.jar. Мне, вероятно, придется вернуть сервер потока данных до версии 1.2.3, если в ближайшее время не выйдет версия 1.3. - person Greg Charles; 18.12.2017
comment
В любом случае указатель IG дал мне достаточно информации, чтобы продолжить. Консольное приложение SPDF запрашивает свойства развертывания при развертывании потока, но не принимает spring.cloud.stream.bindings.output.content-type. Ссылка IG предполагала, что свойство должно иметь префикс app и имя приложения, поэтому: app.rabbit.spring.cloud.stream.bindings.output.content-type = text / plain сработало! - person Greg Charles; 18.12.2017