代理网址中的多个选项-正确的语法

时间:2018-12-29 17:32:11

标签: spring activemq

我有一个嵌入式经纪人,如下;

<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:   来自类路径资源[activemq.xml]的XML文档中的第108行是   无效;嵌套的异常是org.xml.sax.SAXParseException;   lineNumber:108; columnNumber:132;对实体的引用   “ initialReconnectDelay”必须以“;”结尾定界符。

好的-所以如果我"?keepAlive=true&initialReconnectDelay=5000;"仍然出现相同的错误。

也尝试过(注意到these 2 pages之间的细微差别之后);

<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网站,看不到一个字符串中多个选项中的example个?!?!

有人可以告诉我使用的正确语法,这样我就可以设置多个选项,或者指向某个地方的清晰示例。

为完整起见,桥接连接的另一部分是;

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

1 个答案:

答案 0 :(得分:0)

您得到的错误来自Spring,而不是任何ActiveMQ代码。 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException例外,这是由于某种Spring配置问题而不是ActiveMQ URL语法引起的。

我相信您的问题出在您添加到配置中的&字符上。由于它是保留字符,因此需要以XML &amp;的形式转义。