Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Configuration
- @EnableJms
- public class ListenerConfigurer implements JmsListenerConfigurer {
- @Autowired
- private List<JmsListenerConfig> listenerConfigs;
- @Autowired
- private ConnectionFactory connectionFactory;
- @Override
- public void configureJmsListeners(JmsListenerEndpointRegistrar registrar) {
- for(JmsListenerConfig jmsListenerConfig : listenerConfigs) {
- SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint();
- endpoint.setId(jmsListenerConfig.getEndpointName());
- endpoint.setDestination(jmsListenerConfig.getEndpointName());
- endpoint.setMessageListener(message -> {
- TextMessage txtMessage = (TextMessage) message;
- try {
- jmsListenerConfig.getMessageReceiveHandler().handle(txtMessage.getText());
- }catch (JMSException e){
- e.printStackTrace();
- }
- });
- DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
- factory.setConnectionFactory(connectionFactory);
- factory.setSubscriptionDurable(true);
- factory.setPubSubDomain(true);
- factory.setClientId(jmsListenerConfig.getClientUid());
- DefaultMessageListenerContainer container = factory.createListenerContainer(endpoint);
- endpoint.setupListenerContainer(container);
- registrar.registerEndpoint(endpoint, factory);
- registrar.setContainerFactory(factory);
- }
- }
- }
Add Comment
Please, Sign In to add comment