我正在阅读一个带有JSON消息的队列,并且在侦听器中,我试图从该JSON中访问消息作为对象。这是使用的转换器:
@Bean // Serialize message content to json using TextMessage
public MessageConverter jacksonJmsMessageConverter() {
MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
converter.setTargetType(MessageType.TEXT);
converter.setTypeIdPropertyName("BrokerTrade.class");
return converter;
}
我遇到了下面的例外。
org.springframework.integration.transformer.MessageTransformationException: failed to transform message; nested exception is java.lang.IllegalArgumentException: Could not resolve 'json__TypeId__' in 'javaTypes'.
下面是示例json,我使用jmsTemplate将其添加到队列中。
{“id”:1,“tradeSourceId”:“mytradeSourceId”,“messageOriginCode”:“CXE”,“sequenceNumber”:“1”,“messageType”:“TRANSFER”,“movementCode”:“1”,“transferType”:“NORMAL”,“updateType”:“无更新”}
请帮帮我
1条答案
按热度按时间dhxwm5r41#
这应该是消息中String属性的名称,该属性包含有关要转换为的类型的信息-可以是完全限定的类名,也可以是要在类Map中查找以确定类名的值。
如果消息不包含类型信息,则必须子类化转换器并重写
getJavaTypeForMessage
以返回JacksonJavaType
.你通常可以使用objectMapper来实现这一点。