Mule 4 对象存储始终在检索时返回 null



我分别使用以下版本的运行时和对象存储。

<app.runtime>4.2.2-hf2</app.runtime>
<mule.maven.plugin.version>3.3.5</mule.maven.plugin.version>
<dependency>
<groupId>org.mule.connectors</groupId>
<artifactId>mule-objectstore-connector</artifactId>
<version>1.1.5</version>
<classifier>mule-plugin</classifier>
</dependency>

对象存储配置

<os:object-store name="tokenStore" maxEntries="1" entryTtl="1" entryTtlUnit="HOURS" expirationInterval="60" config-ref="ObjectStore_Config" persistent="false"/>

我的流中有一个 HTTP 请求,该请求检索我希望其他流共享的身份验证密钥。我将响应保存在变量中,然后存储其值。

<logger level="INFO" message="Authentication Response: #[vars.authResponse]" />
<os:store key="accessToken" objectStore="tokenStore">
<os:value><![CDATA[#[vars.authResponse.access_token]]]></os:value>
</os:store>
<os:retrieve key="accessToken" objectStore="tokenStore" target="vars.accessToken" >
</os:retrieve>
<logger level="INFO" message="Retrieve from store: #[vars.accessToken]"/>

以下是日志输出:

WMS Authentication Response: {"access_token":"123","token_type":"Bearer","expires_in":3600}
Retrieve from store: null

我无法弄清楚为什么当我尝试检索它时存储的值 si 总是为空。任何帮助将不胜感激。

尝试在存储之前记录vars.authResponse.access_token的值。 vars.authResponse 似乎是 JSON,也许表达式没有正确解释它。您可能需要手动设置类型。

例:

<os:value><![CDATA[#[output application/java --- vars.authResponse.access_token]]]></os:value>

最新更新