Mule ESB:如何申请泽西资源成功范围?

时间:2018-01-16 21:45:53

标签: mule mule-studio mule-component mule-esb

假设我们的应用程序中只有一个资源:HelloWorldResource

Mule流配置如下所示:

<http:listener-config doc:name="HTTP Listener Configuration" host="0.0.0.0" name="HTTP_Listener_Configuration" port="9988"/>

<flow name="HelloWorldFlow">
    <http:listener config-ref="HTTP_Listener_Configuration" path="/*"/>
     <jersey:resources>
     <component class="acme.HelloWorldResource">
     </component>
 </jersey:resources>
</flow>

我现在的问题是:

是否可以为Jersey资源申请成功范围?

我想要实现的目标: 如果Jersey资源端点失败 - 我希望Mule重试该呼叫。

我尝试进行以下更改:

 <until-successful 
        maxRetries="2" 
        millisBetweenRetries="100" 
        objectStore-ref="objectStoreUntilSuccessful" 
        failureExpression="#[message.inboundProperties['http.status'] != 200]">
    <flow name="HelloWorldFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/*"/>
         <jersey:resources>
         <component class="acme.HelloWorldResource">
         </component>
     </jersey:resources>
    </flow>
    </until-successful>

但是,我的更改只是在服务器启动期间导致异常:

org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'until-successful'

1 个答案:

答案 0 :(得分:1)

你已经把直到成功的流程放在了流动之外,它需要在流动中并且只是在球衣周围:资源元素