在mule中,无法从不同应用程序中的对象存储中检索值

在mule中,无法从不同应用程序中的对象存储中检索值,mule,mule-component,mule-el,mule-esb,mule-cluster,Mule,Mule Component,Mule El,Mule Esb,Mule Cluster,我无法从App1读取存储在对象存储区中的密钥值 我有两个应用程序,App1,它将变量的值(比如'name,)存储到某个值(比如'abc')。在App2中,我想检索键的值(在我们的例子中为“name”),但org.mule.api.store.ObjectDoesNotExistException总是失败 如果两个流都在同一个应用程序上,它会工作,但这不是预期的行为 这两个应用程序都在同一个运行时上运行,因此它应该能够检索该值 下面是我的App1代码 <flow name="objectst

我无法从App1读取存储在对象存储区中的密钥值

我有两个应用程序,App1,它将变量的值(比如'name,)存储到某个值(比如'abc')。在App2中,我想检索键的值(在我们的例子中为“name”),但org.mule.api.store.ObjectDoesNotExistException总是失败

如果两个流都在同一个应用程序上,它会工作,但这不是预期的行为

这两个应用程序都在同一个运行时上运行,因此它应该能够检索该值

下面是我的App1代码

<flow name="objectstore1Flow">
    <http:listener config-ref="HTTP_Listener_Configuration" path="/retrieve" allowedMethods="GET" doc:name="HTTP"/>
    <set-variable value="abc" variableName="name" doc:name="Variable" />
    <objectstore:store config-ref="ObjectStore__Connector" key="name" value-ref="#[flowVars.name]" doc:name="ObjectStore" />
</flow>

App2的代码

<flow name="objectstore2Flow">
    <http:listener config-ref="gcc-httpDomainListenerConfig" path="/store2" allowedMethods="GET" doc:name="HTTP"/>
    <objectstore:retrieve config-ref="ObjectStore__Connector" key="name" doc:name="ObjectStore" targetScope="INVOCATION"/>
    <logger message="Value of name from cache is : #[payload]" level="INFO" doc:name="Logger"/>
</flow>

两个应用程序的对象存储配置为:

<objectstore:config name="ObjectStore__Connector" partition="name_value" doc:name="ObjectStore: Connector"/>


有人能告诉我哪里出了问题吗?

主要原因是应用程序彼此独立,并且使用自己的内存存储来保存数据。
因此,当您的app1存储其数据时,它将自己存储在内存中,而app2无法使用它自己的内存。
这两个应用都引用了自己的对象存储配置

共享对象存储的解决方案将是一个域项目,在该项目中,您将在域中定义一个单个对象存储,并在其所有子应用程序(如app1app2app3等)之间共享

请按照此处的步骤进行操作:


对于持久化ObjectStore,请使用
\u defaultUserObjectStore
持久化选项ref:

我尝试了bushorn.com中提到的方法,但没有成功。在你的评论之后,我试着重新启动我的工作室,奇怪的是它现在可以工作了。我假设它不可能已经存在,否则我会得到ObjectAlreadyExist异常,可能是我以前做错了什么。谢谢你的建议,它现在正在工作,我们将在集群骡箱上检查这个。