我无法让nonBlockingRedelivery属性真正起作用,我无法弄清楚原因。我一定错过了一些明显的东西。
例如,如果我尝试通过代理URL进行设置;
TCP://本地主机:61616 jms.nonBlockingRedelivery =真
我会收到以下错误。
原因:无法创建传输。原因: java.lang.IllegalArgumentException:无效的连接参数: {jms.nonBlockingRedelivery =真}
如果我尝试通过Spring配置进行设置,我将收到以下错误。
<bean id="connectionFactoryRedelivery" class="org.springframework.jms.connection.TransactionAwareConnectionFactoryProxy">
<property name="targetConnectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="${more.MQ.brokerURL}" />
<property name="nonBlockingRedelivery" value="true" />
<property name="redeliveryPolicy" ref="redeliveryPolicy" />
</bean>
</property>
<property name="synchedLocalTransactionAllowed" value="true" />
</bean>
org.springframework.beans.NotWritablePropertyException:无效 property&#39; nonBlockingRedelivery&#39;豆类 [org.apache.activemq.ActiveMQConnectionFactory]:Bean属性 &#39; nonBlockingRedelivery&#39;不可写或具有无效的setter 方法。 setter的参数类型是否与返回类型匹配 吸气鬼?
答案 0 :(得分:0)
我的延迟错误,我使用的是旧版本的JAR,其中此属性实际上不存在。上面的Spring配置100%工作,如果你遇到问题,他们会在其他地方工作。
答案 1 :(得分:0)
我相信我仍然看到spring-boot-starter-activemq:1.5.10.RELEASE这个问题 - 因为spring.activemq.broker-url上的这个不起作用:
?jms.nonBlockingRedelivery=true
但是设置此属性会修复它:
spring.activemq.non-blocking-redelivery: true