【问题标题】:How to select different properties based on variable input in Mulesoft?如何根据 Mulesoft 中的变量输入选择不同的属性?
【发布时间】:2019-07-13 15:46:04
【问题描述】:

我正在尝试根据已传递的变量加载属性配置列表。下面是我正在尝试做的一个例子:

假设我的 .properties 文件中有以下内容

abc=['Jojo12','Koko34','Gigi56'] abc2=['Kiki44','Lala11','Hoho32']

如果我的变量是Jojo12,那么它将加载以下属性(我应该将其存储在同一个属性文件中吗?)

abc.application.tgh.connection.AgentId= 89 abc.application.tgh.connection.AgentPassword=1************

如果我的变量是Kiki44,那么它将加载以下属性(我应该将它存储在同一个属性文件中吗?)

abc2.application.tgh.connection.AgentId= 77 abc2.application.tgh.connection.AgentPassword=2************

我怎样才能达到预期的效果?

谢谢

【问题讨论】:

  • 你是如何“传入”你的变量输入的?它是来自 http 请求的查询参数吗?是重新启动骡子运行时吗?部署应用程序?
  • 嗨@utechtzs 这是来自http请求的有效负载
  • @JasonLee 您能否分享确切的有效负载以及发送给您的 http 请求?似乎您使用的是变量名而不是值?如果我错了,请纠正我。
  • @ZainUlAbideen,您好,例如我的请求有效负载是 FoodCode_Request > 然后,我将 FoodCode = "Jojo12" 存储到一个变量中,以验证要使用的属性配置。我的问题是我不确定基于 FoodCode 验证它的最简单方法是什么,例如,如果我的变量的值为“Jojo12”,那么它将加载 abc.application.tgh.connection.AgentId=89 等等.

标签: properties mule properties-file anypoint-studio dataweave


【解决方案1】:

对于第一部分,使用属性很麻烦。您将需要迭代每个组并查看该用户是否在其中,直到您找到匹配项。

但是您可以使用 Mule 4 轻松完成第二部分:

对于财产:

abc.application.tgh.connection.AgentId= 89

获取属性:

<set-variable variableName="lookupid" value="abc"  />
<logger level="ERROR" message="#[p(vars.lookupid ++ '.application.tgh.connection.AgentId')]" />

【讨论】:

  • 嗨@Ryan Carter,感谢您的回复。对于第一部分,你知道我怎么能在不使用属性的情况下做到这一点,因为你提到它效率不高。至于第二部分,由于我是在Mule 3上运行的,我认为您提供的示例代码可以在我的环境中运行吧?
  • 我似乎无法将此代码 #[p(vars.lookupid ++ '.application.tgh.connection.AgentId')] 放入元素属性字段(例如 http 请求或 Web 服务消费者)工作。你知道我应该怎么写吗?从属性文件引用的正常方法是 ${application.tgh.connection.AgentId} 但现在添加了变量我不完全确定如何编写它
  • 你用的是mule 3还是mule 4?
  • 我正在使用 mule 3
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-27
  • 2019-12-24
  • 2022-01-22
  • 1970-01-01
  • 2017-12-18
  • 2020-08-30
  • 2020-03-24
相关资源
最近更新 更多