【发布时间】:2021-05-02 09:55:45
【问题描述】:
我正在尝试使用库 azure-servicebus-jms-spring-boot-starter 向主题发送消息。一切正常,但是消息以application/xml 类型存储在订阅中,我找不到如何正确设置它以将它们存储为application/json 的方法。
我尝试将消息转换器配置为按照here 的描述发送ContentType,但这也不起作用。
@Bean
public MessageConverter jacksonJmsMessageConverter() {
final MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter(){
@Override
protected TextMessage mapToTextMessage(Object object, Session session, ObjectWriter objectWriter)
throws JMSException, IOException {
final TextMessage message = super.mapToTextMessage(object, session, objectWriter);
message.setStringProperty("ContentType", "application/json");
return message;
}
};
converter.setTargetType(MessageType.TEXT);
converter.setTypeIdPropertyName("_type");
converter.setObjectMapper(objectMapper);
return converter;
}
【问题讨论】:
-
Content-Type 需要存储为系统属性,以便 SB 正确识别。 setStringProperty() 似乎只是设置了一个用户属性。问题是:如何在 JMS 中编写系统属性。没有很快找到东西
-
改用
content_type。 -
content_type 也不起作用:/
-
@bilak 你是如何设置 ContentType 的。你能让它工作吗?
-
@SathishMurugesan 见here
标签: azure jms azureservicebus spring-jms