2016-07-29 1 views
1

J'essaie de configurer une simple application Spring Boot qui utilise une file d'attente JMS intégrée. Je réussis avec HornetQ mais quand j'essaye de me convertir à Artemis, j'obtiens un échec sur la ArtemisConnectionFactory. Voici mon code que j'utilise pour HornetQ. Toute aide serait appréciable.Spring Boot Apache Artemis Embedded JMS Queue Eample

package com.comporium.log.server; 

import javax.jms.ConnectionFactory; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.PropertySource; 
import org.springframework.jms.listener.DefaultMessageListenerContainer; 

import com.comporium.log.server.services.LogListener; 

@SpringBootApplication 
public class Application { 
@Autowired 
private ConnectionFactory connectionFactory; 

@Autowired 
LogListener logListener; 

@Bean 
public DefaultMessageListenerContainer messageListener() { 
    DefaultMessageListenerContainer container = new DefaultMessageListenerContainer(); 
    container.setConnectionFactory(this.connectionFactory); 
    container.setDestinationName("loggerQueue"); 
    container.setMessageListener(logListener); 
    return container; 
} 

public static void main(String[] args) throws Exception { 
    SpringApplication.run(Application.class, args); 
    } 
} 

Répondre

0

Pour moi votre code a fonctionné. Pour tester l'application, j'ai ajouté un CommandLineRunner qui produit un message.

@Bean 
CommandLineRunner sendMessage(JmsTemplate jmsTemplate) { 
    return args -> { 
     jmsTemplate.convertAndSend("loggerQueue", "Message to Artemis"); 
    }; 
} 

Le consommateur consommera le message envoyé à cette file d'attente. Il n'est pas nécessaire de déclarer des propriétés, mais j'ai défini les dépendances de temps de compilation suivantes sur mon projet:

compile('org.springframework.boot:spring-boot-starter-artemis') 
compile('org.apache.activemq:artemis-jms-server')