标签: mule4

MuleSoft Dataweave 减少

我尝试了解 Mulesoft Dataweave 2.0 中的归约函数。

预期结果:

{
  "dev": "1",
  "test": "2",
  "uat": "3",
  "prod": "4"
}
Run Code Online (Sandbox Code Playgroud)

我的数据编织代码:

%dw 2.0
var invar = [
  {"id": "1", "name": "dev"},
  {"id": "2", "name": "test"},
  {"id": "3", "name": "uat"},
  {"id": "4", "name": "prod"}
]
output application/json
---
// invar reduce() ???  requirment: it must be done with reduce function.

Run Code Online (Sandbox Code Playgroud)

谢谢

mule dataweave mule4

3
推荐指数
1
解决办法
849
查看次数

尝试从 Mule 4 中的 XML 中删除命名空间时出错

当我用“”替换所有有效负载 env 和 xmlns 时,我看到类似“当文档没有根时尝试写入 END_DOCUMENT”的错误。

它抛出错误:

Message               : "Trying to write END_DOCUMENT when document has no root (ie. trying to output empty document, while writing Xml.
Trace:
  at main (Unknown)" evaluating expression: "payload.replaceAll("env:","").replaceAll("xmlns=\"http://decisionresearch.com/RateMaker\"","")".
Element               : map_requestFlow/processors/0 @ map_request:map_request.xml:13 (Set Payload)
Element DSL           : <set-payload value="#[payload.replaceAll("env:","").replaceAll("xmlns=\"http://decisionresearch.com/RateMaker\"","")]" doc:name="Set Payload" doc:id="7db57e88-dbd4-4a09-ba05-ea37fb9586fc"></set-payload>
Error type            : MULE:EXPRESSION
FlowStack             : at map_requestFlow(map_requestFlow/processors/0 @ map_request:map_request.xml:13 (Set Payload))

  (set debug level logging or '-Dmule.verbose.exceptions=true' for everything) 
Run Code Online (Sandbox Code Playgroud)

骡子流:

<flow name="map_requestFlow" doc:id="21d0d652-3766-47ed-95aa-a451f62c5776" >
        <http:listener doc:name="Listener" doc:id="7312114b-2857-40b3-98cd-f52b628b3a28" config-ref="HTTP_Listener_config" path="/map"/>
        <set-payload …
Run Code Online (Sandbox Code Playgroud)

mule dataweave mulesoft mule4

3
推荐指数
1
解决办法
871
查看次数

使用p()函数m子在Dataweave 2.0中获取安全属性

我使用m子安全属性在属性文件中有一个加密值,例如:

password = !#$#%%%f  (encrypted)
Run Code Online (Sandbox Code Playgroud)

我想基于请求中传递的输入参数,动态地使用dataweave中的p函数获取未加密的值

我使用这种语法获得加密的值

Mule::p(vars.password)
Run Code Online (Sandbox Code Playgroud)

我如何在此之上使用secure ::语法解密值

{
    password: Mule::p('secure::vars.password')
}
Run Code Online (Sandbox Code Playgroud)

有人可以在Mule 4中告诉正确的方法吗

dataweave mulesoft mule4

2
推荐指数
1
解决办法
233
查看次数

mule 中默认标头的概念

我想了解 mule 中默认标头的概念。我想从 mule 中调用 get api 调用[代码是用 java 编写的],并且我在标头中发送了一个令牌,但是我在默认标头中设置了令牌在 http 请求配置中。

<http:default-headers >
            <http:default-header key="testing" value="#[vars.authorizationHeader]" />
        </http:default-headers>
Run Code Online (Sandbox Code Playgroud)

我的 Java 代码能否从属性中读取此标头?

mule anypoint-studio dataweave mule4

2
推荐指数
1
解决办法
237
查看次数

使用 Mule 4 中所需的任一字段验证 json 数组

请求 Json 如下所示:-

{ 
   "eNumber": 8506493,   
   "details": [
     {
      "id":12345,
      "name": xyz123
     }
  ]
}
Run Code Online (Sandbox Code Playgroud)

作为要求的一部分,我需要检查“id”或“name”字段必须存在的“details”数组。如果存在“id”字段,则“name”是非强制性的。如果存在“name”字段,则“id”是非强制性的。如果不满足则抛出错误。

我尝试了几个选项,使用过滤细节数组并检查验证组件中过滤数组的大小。它似乎工作不顺利。如果有人有更好的解决方案。请在这里分享。

mule dataweave mule4

2
推荐指数
1
解决办法
572
查看次数

DW 2.0 中的多态性

我最近意识到在 DW 2.0 中使用类泛型表示法来表示多态类型。

下面的例子

%dw 2.0
output application/dw

fun id1(a) = a
fun id2(a: Any) = a
fun id3<T>(a: T) = a
var id4 = <T>(a: T) -> a
---
{
    "d1": id1,
    "d2": id2,
    "d3": id3,
    "d4": id4,
    r1: id1(10),
    r2: id2(10),
    r3: id3(10),
    r4: id4(10)
}
Run Code Online (Sandbox Code Playgroud)

说明这些函数的签名和语义是相同的。

这就引出了一个问题,如果有的话,这些定义之间有什么区别?你会推荐哪一个?

最后,确认我的假设,即 DW 2.0 借用了在 OO 语言中发现的这种类似泛型的语法来支持显式多态类型。

注意:我确实使用application/dw过以便在从 Anypoint Studio 运行预览时查看函数的信号

蒂亚!

dataweave mule4

2
推荐指数
1
解决办法
91
查看次数

如何检查可变长度字符串数组的任何一个元素是否存在于另一个可变长度字符串数组中

inputArray = ["cat", "bat", "mat"]  
configuredArray = ["dog", "elephant", "fox", "cat"]
Run Code Online (Sandbox Code Playgroud)

inputArrayconfiguredArray是可变长度的字符串数组。

如果 中的任何一个元素inputArray存在,configuredArray我想设置一个 bloolean 标志。我该怎么写Dataweave 2.0?提前致谢。

dataweave mule4

2
推荐指数
1
解决办法
71
查看次数

如何将嵌套 JSON 数组展平为单个数组对象

我有 50,000 多个 json 对象埋在嵌套数组中。我想把它们拉出来,这样它们就可以在单个数组中。而且这些嵌套数组是相当随机的,没有模式。例如

[ [ [ [ [ {"a":1 } ], [ {"b":2 } ] ], [[{"c":3 }]] ] ], [{"d":4 }] ]

必须转换为

[{"a":1},{"b":2},{"c":3},{"d":4}]

使用 Dataweave 2.0

使用过展平,但看起来它的功能不正确。

dataweave mulesoft mule4

2
推荐指数
1
解决办法
596
查看次数

在 Mule 4 中解压文件

我需要解压缩文件。目前,这是在 Mule 3.x 中用 Java 代码完成的,但需要在 Mule 4 中解压文件,我们如何在 Mule 4 中实现这一点?

尝试在 Mule 4 中使用相同的 Mule 3 Java 代码,但 Mule 4 不支持某些方法/函数。有任何代码片段/建议吗?

mule mulesoft mule4

2
推荐指数
1
解决办法
620
查看次数

如何将 Java 对象传递给 mule 中的 Java 函数

在此处输入图片说明

我正在尝试在 mule 中调用一个 java 函数。我将有效负载转换为对象并将其传递到函数中。创建的 Java 对象的名称是req。方法 validate 接受一个 Java Object Of type Example

public HashMap<String, String> validate(Example req) {.......}
Run Code Online (Sandbox Code Playgroud)

示例类如下所示:

Class Example{
String key1;
String key2;
String key3;
}
Run Code Online (Sandbox Code Playgroud)

XML 配置如下所示:

<java:new constructor="Example(java.lang.String,java.lang.String,java.lang.String)" doc:name="New Example" doc:id="6a1d5c8c-a1f0-446e-ab49-99a21fbbf4b9" class="Entities.Example" target="req">
                <java:args ><![CDATA[#[{key1 :payload.key1,key2: payload.key2, key3:payload.key3}]]]></java:args>
            </java:new>
            <java:invoke doc:name="Invoke" doc:id="dd5f6534-06c8-4f4d-b3aa-c634a629898e" class="Implementations.ValidationServiceImpl" instance="#[vars.validator]" method="validate(Entities.Example)">
        <java:args ><![CDATA[#[vars.req]]]></java:args>
    </java:invoke>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误: 在此处输入图片说明

我不知道为什么它不作为一个整体传递 java 对象。

java dataweave mule-esb mule4

1
推荐指数
1
解决办法
418
查看次数

标签 统计

mule4 ×10

dataweave ×9

mule ×5

mulesoft ×4

anypoint-studio ×1

java ×1

mule-esb ×1