2015-05-15 68 views
9

ActiveMQ'yi Spring Boot ile Gömülü olarak kullanıyorum. Broker bir ActiveMQConnectionFactory oluşturulduğu görünüyor. Aracıyı yapılandırma yolunun, broker ile sorguda parametreler ayarlamak olduğunu anlıyorum. Burada açıklandığı gibi: http://activemq.apache.org/how-do-i-embed-a-broker-inside-a-connection.htmlSpring Boot ile ActiveMQ yapılandırması

DLQ hakkında bazı özellikleri ayarlamak istiyorum, bu yüzden targetPolicy özniteliğinde, ancak öznitelik türü basit bir tür değil, karmaşık bir tür, sorgu parametresini nasıl devre dışı bırakabilirim DLQ, lütfen?

cevap

3

İyi soru. Otomatik komisyoncu oluşturma için vm aktarımındaki özellikler harikadır, ancak sadece vurduğunuzu düşündüğüm bir noktaya kadar.

Önerim normalde XML yapardı ve sonra sadece URI'de bu xml başvurun gibi komisyoncu yapılandırmasını tanımlayan olmasıdır. Hedef politikalar gerçekten karmaşık bir yapıdır ve bunları mümkün olsa bile basit sorgu paramlarıyla tanımlamanın nasıl iyi bir fikir olacağını anlamıyorum.

vm://localhost?brokerConfig=xbean:activemq.xml 
1

Bu sorunu yaşadım ve bir yay yapılandırma dosyası kullanarak çözdüm. Benim durumumda, komisyonculuğumu devam ettirmek istedim.

İlgili lib'leri pompamda ekledim: activemq-broker, activemq-spring, spring-jms (ve benim durumumda activemq-leveldb-store dahil).

My bahar xml dosyası şuna benziyordu:

<beans 
    xmlns="http://www.springframework.org/schema/beans" 
    xmlns:amq="http://activemq.apache.org/schema/core" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd 
    http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd"> 

<broker xmlns="http://activemq.apache.org/schema/core" brokerName="xyz"> 
     <persistenceAdapter> 
     <levelDB directory="activemq-data"/> 
     </persistenceAdapter> 

    <transportConnectors> 
     <transportConnector uri="vm:localhost?persistent=true" /> 
    </transportConnectors> 

    </broker> 
</beans> 

Ve ben yapılandırma derslerinden birinde yay dosyasını kayıtlı: iş yaptı

@ImportResource("activemq-spring.xml") 

.

ilk xbeans çözüm çalıştı, ama bazı xbeans sınıfları eksikti çünkü saplanıp ve bir versiyon şey, neydi bilmiyordum. Aynı çözümleri aşağıda ama daha tam örnekleri ile, 5.12.1

1

tamamlayıcı @Petter ve @April cevapları ActiveMQ'yu kullanıyorum:

1. Petter solution, import activemq.xml at connnection factory url

build.gradle

ext { 
    springBootVersion = "1.5.3.RELEASE" 
    activeMQVersion = "5.14.5" 
} 

dependencies { 

    compile("org.springframework.boot:spring-boot-starter-activemq:${springBootVersion}") 
    compile("org.apache.activemq:activemq-broker:${activeMQVersion}") 

    testCompile("org.springframework.boot:spring-boot-starter-test:${springBootVersion}") 
    testCompile group: 'org.apache.activemq', name: 'activemq-spring', version: "${activeMQVersion}" 
    testCompile("junit:junit:4.12") 

} 

src/main/resources/activemq.xml

<beans xmlns="http://www.springframework.org/schema/beans" 
      xmlns:amq="http://activemq.apache.org/schema/core" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation=" 
       http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans.xsd 
       http://activemq.apache.org/schema/core 
       http://activemq.apache.org/schema/core/activemq-core-5.4.0.xsd 
     "> 
    <broker xmlns="http://activemq.apache.org/schema/core" brokerName="broker1" persistent="false" > 
     <transportConnectors> 
      <transportConnector name="vm" uri="vm://broker1"/> 
     </transportConnectors> 
    </broker> 
</beans> 

Config.java

@EnableJms 
@SpringBootApplication 
@EnableAutoConfiguration 
@Configuration 
public class Config {} 

application.properties

2. April solution, import activemq.xml at Spring Configuration

spring.activemq.broker-url=vm://broker1?brokerConfig=xbean:activemq.xml 
Sadece application.properties sonra Yapılandırma için @ImportResource("classpath:activemq.xml") giriş eklemek kaldırın.java

Config.java

@EnableJms 
@SpringBootApplication 
@EnableAutoConfiguration 
@Configuration 
@ImportResource("classpath:activemq.xml") 
public class Config {} 
İlgili konular