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

问题描述 投票:0回答:1

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

<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总是为null时。任何帮助将不胜感激。

mule anypoint-studio mulesoft
1个回答
0
投票

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

示例:

<os:value><![CDATA[#[output application/java --- vars.authResponse.access_token]]]></os:value>
© www.soinside.com 2019 - 2024. All rights reserved.