2016-07-29 18 views
1

Ich versuche, eine einfache Spring Boot-Anwendung einzurichten, die eine eingebettete JMS-Warteschlange verwendet. Ich bin erfolgreich mit HornetQ, aber wenn ich versuche, zu Artemis zu konvertieren, bekomme ich einen Fehler in der ArtemisConnectionFactory. Hier ist mein Code, den ich für HornetQ verwende. Jede Hilfe wäre dankbar.Spring Boot Apache Artemis Eingebettete JMS-Warteschlange 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); 
    } 
} 

Antwort

0

Für mich hat Ihr Code funktioniert. Um die Anwendung zu testen, habe ich eine CommandLineRunner hinzugefügt, die eine Nachricht erzeugt.

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

Der Consumer wird die an diese Warteschlange gesendete Nachricht konsumieren. Es ist nicht notwendig, irgendwelche Eigenschaften zu deklarieren, aber ich habe die folgenden Kompilierzeitabhängigkeiten für mein Projekt definiert:

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