我有一个嵌入式经纪人,如下;
<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>
答案 0 :(得分:0)
您得到的错误来自Spring,而不是任何ActiveMQ代码。 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException
例外,这是由于某种Spring配置问题而不是ActiveMQ URL语法引起的。
我相信您的问题出在您添加到配置中的&
字符上。由于它是保留字符,因此需要以XML &
的形式转义。