我分别使用以下版本的运行时和对象存储。
<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时。任何帮助将不胜感激。
在存储之前,尝试记录vars.authResponse.access_token的值。 vars.authResponse似乎是JSON,可能表达式未正确解释。您可能需要手动设置类型。
示例:
<os:value><![CDATA[#[output application/java --- vars.authResponse.access_token]]]></os:value>