Mule 在应用程序中,您将在何处为在until successful作用域中定义的dlqEndpoint ref定义vm:endpoint?
我正试图按照本文()中的示例为一个直到成功的scope元素定义一个死信队列。这是博客文章中的一段不太有意义的内容:Mule 在应用程序中,您将在何处为在until successful作用域中定义的dlqEndpoint ref定义vm:endpoint?,mule,mule-studio,Mule,Mule Studio,我正试图按照本文()中的示例为一个直到成功的scope元素定义一个死信队列。这是博客文章中的一段不太有意义的内容: <vm:endpoint name="dlqChannel" path="dlq" /> <until-successful objectStore-ref="objectStore" dlqEndpoint-ref="dlqChannel" maxRetries="3" secondsBetweenRetries="10">
<vm:endpoint name="dlqChannel" path="dlq" />
<until-successful objectStore-ref="objectStore"
dlqEndpoint-ref="dlqChannel"
maxRetries="3"
secondsBetweenRetries="10">
...
</until-successful>
...
我不太明白vm端点在应用程序中的位置。我认为它与until successful元素的流程不同。我试着把它放在自己的流中,但是我得到了一个NoSuchBeanDefinitionException
这是我的相关代码:
<flow ....>
....
<until-successful objectStore-ref="objectStore" failureExpression="#[header:INBOUND:http.status != 201]" maxRetries="1" secondsBetweenRetries="5" doc:name="Until Successful" deadLetterQueue-ref="aggieFeedDestinedDeadLetterQueue">
....
</flow>
<flow name="edus-pubFlow1" doc:name="edus-pubFlow1">
<vm:inbound-endpoint exchange-pattern="one-way" path="aggieFeedDestinedDeadLetterQueue" doc:name="aggieFeedDestinedDeadLetterQueue"/>
<logger message="DEAD DEAD DEAD LETTER LETTER LETTER #[message]" level="INFO" doc:name="Logger"/>
</flow>
....
....
dlqChannel属性指的是全局端点。在您的情况下,请使用:
<vm:inbound-endpoint exchange-pattern="one-way" path="aggieFeedDestinedDeadLetterQueue" />
<flow ....>
....
<until-successful objectStore-ref="objectStore"
failureExpression="#[header:INBOUND:http.status != 201]"
maxRetries="1" secondsBetweenRetries="5"
deadLetterQueue-ref="aggieFeedDestinedDeadLetterQueue">
....
</flow>
<flow name="edus-pubFlow1">
<endpoint ref="aggieFeedDestinedDeadLetterQueue" />
<logger message="DEAD DEAD DEAD LETTER LETTER LETTER #[message]" level="INFO" doc:name="Logger"/>
</flow>
failureExpression="#[message.inboundProperties['http.status'] != 201]"