>converter.setTypeIdPropertyName("BrokerTrade.class");
Предполагается, что это имя свойства String в сообщении, содержащем информацию о типе, в который необходимо преобразовать, - либо полное имя класса, либо значение, которое нужно посмотреть в сопоставлениях классов для определения класса.name.
Если сообщение не содержит информацию о типе, вам нужно создать подкласс конвертора и переопределить getJavaTypeForMessage
, чтобы вернуть Джексона JavaType
...
/**
* Determine a Jackson JavaType for the given JMS Message,
* typically parsing a type id message property.
* <p>The default implementation parses the configured type id property name
* and consults the configured type id mapping. This can be overridden with
* a different strategy, e.g. doing some heuristics based on message origin.
* @param message the JMS Message to set the type id on
* @throws JMSException if thrown by JMS methods
* @see #setTypeIdOnMessage(Object, javax.jms.Message)
* @see #setTypeIdPropertyName(String)
* @see #setTypeIdMappings(java.util.Map)
*/
protected JavaType getJavaTypeForMessage(Message message) throws JMSException {
...
}
. Вы можетеобычно это делается с помощью objectMapper ...
objectMapper.getTypeFactory().constructType(BrokerTrade.class)