I am new to Spring JMS. My application is developed using Spring Boot and is deployed in JBoss EAP 7.2.0. I have a remote queue which is an Active MQ Artemis queue which is also embedded within JBoss EAP 7.2.0. Can anyone please suggest me how to send a message to the remote JMS queue using JmsTemplate of Spring Boot? Basically I am not getting how should I define the remote connectionFactory to connect to the remote queue.
1 Answers
1
votes
- Add the following to application properties as your application is deployed in application server
spring.jms.jndi-name=java:/<your connection factory name for artemis>
- Add artemis dependency and let spring boot autoconfigure jmsTemplate
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-artemis</artifactId>
</dependency>
- Autowire jmsTemplate and send message
@Component
public class MyMessageSender {
@Autowired
JmsTemplate jmsTemplate;
public void send(String msg){
jmsTemplate.convertAndSend("my.queue.name", msg);
}
}
- Optionally you can configure message converters and send pojos as message and let spring take care of converting it to json. For example
@Bean // Serialize message content to json using TextMessage
public MessageConverter jacksonJmsMessageConverter() {
MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
converter.setTargetType(MessageType.TEXT);
converter.setTypeIdPropertyName("_type");
return converter;
}
ConnectionFactory
andDestination
programmatically? – Justin Bertram