2017-02-21 6 views
2

Ich bin mit dem JmsTemplate Frühling API und MappingJackson2MessageConverter (Version: spring-jms-4.3.4.RELEASE.jar) -Nachrichten Thema zu einem ActiveMQ zu veröffentlichen, wie im folgenden Code dargestellt.Frühling JmsTemplate - füge individuelles Objekt

Topicpublisher Klasse:

@Component 
public class TopicPublisher { 

    @Autowired 
    private JmsTemplate jmsTemplate; 

    @Autowired 
    private MessageConverter messageConverter; 

    public void send() { 
     Product product = new Product(); 
     product.setName("abcd"); 
     product.setPrice(10); 

     jmsTemplate.setMessageConverter(messageConverter); 
     jmsTemplate.convertAndSend("product.topic", product); 
    } 
} 

MappingJackson2MessageConverter Klasse:

@Configuration 
public class JMSTextMessageConverter { 

    @Bean 
    public MessageConverter jacksonJmsMessageConverter() { 
     MappingJackson2MessageConverter mappingJackson2MessageConverter 
      = new MappingJackson2MessageConverter(); 
     mappingJackson2MessageConverter.setTargetType(MessageType.TEXT); 
     mappingJackson2MessageConverter.setTypeIdPropertyName("_type"); 
     return mappingJackson2MessageConverter; 
    } 
} 

Jetzt möchte ich einige benutzerdefinierte Header an die JMS-Nachricht auf dem Thema veröffentlicht. Ich googelte und konnte kein Beispiel finden, das dies tut. Kannst du helfen ?

+0

Gibt es Gründe, warum typeIdPropertyName = _typ? –

Antwort

5

Sie können durch das Senden MessagePostProcessor benutzerdefinierte Eigenschaften unter Verwendung convertAndSend Methode von JmsTemplate hinzufügen, wie unten dargestellt:

jmsTemplate.convertAndSend("product.topic", product, new MessagePostProcessor() { 
     @Override 
     public Message postProcessMessage(Message message) throws JMSException { 
      message.setStringProperty("my_property", "my_value"); 
      return message; 
     } 
    }); 
+0

'message.clearProperties();' Sollte diese Zeile vor 'setStringProperty' hinzufügen. Andernfalls würde 'javax.jms.MessageNotWriteableException' ausgelöst –

Verwandte Themen