经纪人 url 中的多个选项 - 正确的语法
Multiple options in broker url - correct syntax
我有一个嵌入式代理如下;
<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>
无法启动服务器并出现错误;
ERROR:
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:
Line 108 in XML document from class path resource [activemq.xml] is
invalid; nested exception is org.xml.sax.SAXParseException;
lineNumber: 108; columnNumber: 132; The reference to entity
"initialReconnectDelay" must end with the ';' delimiter.
好的 - 所以如果我这样做 "?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>
您收到的错误来自 Spring,而不是来自任何 ActiveMQ 代码。例外是 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException
,这是由于某种 Spring 配置问题而不是您的 ActiveMQ URL 语法。
我认为您的问题出在您添加到配置中的 &
字符上。它需要在 XML 中转义为 &
因为它是保留字符。
我有一个嵌入式代理如下;
<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>
无法启动服务器并出现错误;
ERROR: org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 108 in XML document from class path resource [activemq.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 108; columnNumber: 132; The reference to entity "initialReconnectDelay" must end with the ';' delimiter.
好的 - 所以如果我这样做 "?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>
您收到的错误来自 Spring,而不是来自任何 ActiveMQ 代码。例外是 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException
,这是由于某种 Spring 配置问题而不是您的 ActiveMQ URL 语法。
我认为您的问题出在您添加到配置中的 &
字符上。它需要在 XML 中转义为 &
因为它是保留字符。