我有一个groovy变换器组件,它将获取入站属性并将其设置在流量变量中,如下所示。
if(message.inboundProperties.'http.query.params'.Brand != null){
flowVars ['Brand'] = message.inboundProperties.'http.query.params'.Brand
}
return payload;
但是我得到了指定的错误。似乎inboundProperties不在groovy的范围内。你能告诉我如何访问groovy中的入站属性。
注意:我不想改变有效载荷。我的目标是基于queryparms创建flowVars。
错误的一部分:
No such property: inboundProperties for class: org.mule.DefaultMuleMessage (groovy.lang.MissingPropertyException)
org.codehaus.groovy.runtime.ScriptBytecodeAdapter:51 (null)
答案 0 :(得分:4)
我看不到getInboundProperties()
方法on DefaultMuleMessage
我猜你想要:
if(message.getInboundProperty('http.query.params')?.Brand){
flowVars ['Brand'] = message.getInboundProperty('http.query.params').Brand
}
答案 1 :(得分:1)
您可以通过两种方式从入站属性设置变量:
<scripting:component doc:name="Groovy">
替换为<expression-component doc:name="Expression">
继续使用groovy组件,然后修改现有代码
if(message.getInboundProperty('http.query.params').get('Brand') != null) {
flowVars ['Brand'] = message.getInboundProperty('http.query.params').get('Brand');
}
return payload;
答案 2 :(得分:1)
使用message.getInboundProperty。
Intent fileManagers = new Intent();
fileManagers.setAction(Intent.ACTION_GET_CONTENT);
File dir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
.getAbsolutePath());
Uri uri = Uri.fromFile(dir);
fileManagers.setDataAndType(uri, "file/*");
startActivity(Intent.createChooser(fileManagers, null));