Несколько опций в URL брокера - правильный синтаксис - PullRequest
0 голосов
/ 29 декабря 2018

У меня есть встроенный брокер следующим образом:

<bean id="Server1_remote" class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL" value="failover:(tcp://server1:61616,tcp://server1:61616)?keepAlive=true" />
</bean>

Все работает хорошо, но мне нужно добавить еще несколько опций для аварийного соединения.

Если я это сделаю;

<bean id="Server1_remote" class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL" value="failover:(tcp://server1:61616,tcp://server1:61616)?keepAlive=true&initialReconnectDelay=5000" />
</bean>

Не удается запустить сервер и возникают ошибки;

ОШИБКА: org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: строка 108 в документе XML из ресурса пути к классу [activemq.xml] недействителен;вложенным исключением является org.xml.sax.SAXParseException;номер строки: 108;номер столбца: 132;Ссылка на сущность «initialReconnectDelay» должна заканчиваться символом «;»разделитель.

Хорошо - так что если я сделаю "?keepAlive=true&initialReconnectDelay=5000;", я все еще получаю ту же ошибку.

Также пытался (После того, как заметил тонкое различие между эти 2 страниц );

<bean id="Server1_remote" class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL" value="failover:(tcp://server1:61616?transport.tcpNoDelay=true&transport.keepAlive=true,tcp://server1:61616?transport.tcpNoDelay=true&transport.keepAlive=true)?initialReconnectDelay=5000" />
</bean>

Я просматривал веб-сайт AMQ и не увидел ни одного примера нескольких вариантов в строке ?!?!

Может кто-нибудь сказать мне правильный синтаксис для использования, чтобы я мог установить несколько параметров, или или указать на четкий пример где-то.

Для полноты, другойчасть мостового соединения:

<jmsBridgeConnectors>
    <jmsTopicConnector name="server1_feeds" outboundTopicConnectionFactory="#Server1_remote" >
        <inboundTopicBridges>
            <inboundTopicBridge consumerName="vm0-topic1" inboundTopicName="TOPIC1"
            localTopicName="TOPIC1_OUT" />
        </inboundTopicBridges>
    </jmsTopicConnector>
</jmsBridgeConnectors>

1 Ответ

0 голосов
/ 29 декабря 2018

Ошибка, которую вы получаете, исходит из Spring, а не из любого кода ActiveMQ.Исключением является org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException, которое связано с какой-то проблемой конфигурации Spring, а не с синтаксисом URL ActiveMQ.

Я считаю, что ваша проблема связана с символом &, который вы добавили в свою конфигурацию.Его необходимо экранировать в XML как &amp;, поскольку это зарезервированный символ.

...