Mulesoft选择路由器-在默认路径上无需执行任何操作-是否有一个Mulesoft占位符组件不会浪费资源? M子4: M子3:

我有一个子流程,可确保OAuth访问令牌是最新的。令牌值保存在对象存储中,该对象存储在条目超时之前不久即过期。过期后,将检索一个新的令牌值并将其放置在对象存储中。

Mulesoft选择路由器-在默认路径上无需执行任何操作-是否有一个Mulesoft占位符组件不会浪费资源?
      
     M子4: M子3:

我没有找到任何简单的Mule v3方法来刷新利用对象存储的令牌的示例,因此,如果有兴趣的话,这里是代码。

<sub-flow name="get_token">
   <objectstore:retrieve config-ref="TokenStore" key="StatusToken" defaultvalue-ref="#['expired']" targetProperty="StatusToken" doc:name="Get token from Object Store"/>
   <choice doc:name="Expired?">
      <when expression="#[flowVars.StatusToken == 'expired']">
         <set-payload value="#[{'grant_type':'refresh_token','refresh_token':'${RefreshToken}'}]" doc:name="Set payload for token refresh"/>
         <http:request config-ref="HTTP-Token" path="${tokenPath}" method="POST" doc:name="Get new token">
            <http:request-builder>
               <http:header headerName="Content-Type" value="application/x-www-form-urlencoded"/>
            </http:request-builder>
         </http:request>
            <dw:transform-message doc:name="Write token to flowVar">
               <dw:set-variable variableName="StatusToken">
                  <![CDATA[
                     %dw 1.0
                     %output application/java
                     ---
                     payload.access_token
                  ]]>
               </dw:set-variable>
            </dw:transform-message>
         <objectstore:store config-ref="TokenStore" key="StatusToken" value-ref="#[flowVars.StatusToken]" doc:name="Put token to Object Store"/>
      </when>
      <otherwise>
         <set-variable variableName="Useless" value="#['']" doc:name="Useless placeholder"/>
      </otherwise>
   </choice>
</sub-flow>

该流程按设计工作正常,但这是我的问题。选择路由器检查令牌是否已过期。否则无需采取任何措施,并且如果默认路径为空,则流错误。最小化默认路径上的处理和任何资源利用的最简单元素是什么?

achang95 回答:Mulesoft选择路由器-在默认路径上无需执行任何操作-是否有一个Mulesoft占位符组件不会浪费资源? M子4: M子3:

根据Ryan Carter的评论,可以将其标记为重复,但不是真的。 这是链接:

How do I implement IF in mulesoft

摘要

M子4:

不需要<otherwise>标签

M子3:

需要一个组件。我倾向于将LoggerTRACE一起使用,因为log4j2很聪明,并且如果将级别设置为DEBUG或更高,则不会替换参数。但是,如果您确实需要调试流,最好查看流是否正确路由。

本文链接:https://www.f2er.com/3143759.html

大家都在问