mule rest call响应流程执行

时间:2014-09-16 18:37:40

标签: mule

我的流程是:从URL调用mule url,它使用json数据调用REST调用。在mule流中,在休息调用之后,flow调用Java组件并从db中选择数据。现在,问题是,如果Java组件中的任何错误,错误在控制台中打印,但是来自休息的响应总是返回状态200即OK。我需要的是,在休息后应该发回响应响应,它应该发送异常细节或来自java组件的响应,即。在休息呼叫和状态之后来自组件的响应不应该是200 / OK,它应该发送失败。

<flow name="exportjournalentriesFlow1" doc:name="exportjournalentriesFlow1" >
    <http:inbound-endpoint exchange-pattern="request-response" host="${hostname}" port="${port}" path="QBJournalExport/QBGLRest" doc:name="HTTP"/>
    <jersey:resources doc:name="REST">
        <component class="com.mycompany.mulesoft.quickbooks.utils.RestService"/>
    </jersey:resources>        
    <set-session-variable variableName="restData" value="#[message.payload]" doc:name="Session Variable"/>      
    <db:select config-ref="hrdev" doc:name="Database">
        <db:parameterized-query><![CDATA[select company_name, access_token, access_token_secret from dim_access]]></db:parameterized-query>
    </db:select>
    <set-session-variable variableName="accessToken" value="#[payload.get(0).get('ACCESS_TOKEN')]" doc:name="Access token Session Variable"/>
    <custom-transformer name="StringToNameString" class="com.mycompany.mulesoft.quickbooks.utils.GLExportTransformer" doc:name="Java"/>        
    <set-payload value="#[quickbookspoc.CreateJournalEntry.createJournalEntry(payload,sessionVars['accessToken'],sessionVars['accessTokenSecret'])]" doc:name="Set Payload"/>        
</flow>

1 个答案:

答案 0 :(得分:0)

以下是我找到的解决方案:

<custom-transformer name="StringToNameString" class="com.mycompany.mulesoft.quickbooks.utils.GLExportTransformer" doc:name="Java"/>        
<set-payload value="#[quickbookspoc.CreateJournalEntry.createJournalEntry(payload,sessionVars['accessToken'],sessionVars['accessTokenSecret'])]" doc:name="Set Payload"/>        

<choice doc:name="Choice">
       <when expression="#[payload == 'SUCCESS']">
         <logger message="#[payload]" level="INFO" doc:name="payload"/>
       </when>
       <otherwise>
         <http:response-builder status="500" contentType="application/json" doc:name="Call Back"/>
       </otherwise>
</choice>