我的流程是:从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>
答案 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>