soap - 如何在 mule dataweave 中外部化重复的 SOAP 响应属性?
问题描述
我正在 Dataweave 中构建一个 SOAP 响应。响应的某些组件(ESBHeader)在多个流中重复。我还需要为每个请求设置状态代码和消息。
我需要一种通用/通用的方式将这些重复的行加载到一个通用的 dwl 文件中以进行代码优化。我该怎么做?
flow1 的示例响应 Message1
{
ns1#ResponseMsg1: {
ns0#ESBHeader: {
ns0#InitialContext @(CreationTime: flowVars.req.ResponseMsg1.ESBHeader.InitialContext.@CreationTime, TrackingID: flowVars.req.ResponseMsg1.ESBHeader.InitialContext.@TrackingID): {
ns0#Actor @(Component: flowVars.req.ResponseMsg1.ESBHeader.InitialContext.Actor.@Component , Operation: flowVars.req.ResponseMsg1.ESBHeader.InitialContext.Actor.@Operation): null
},
ns0#MessageContext : {
ns0#Actor @(Component: flowVars.req.ResponseMsg1.ESBHeader.MessageContext.Actor.@Component , Operation: flowVars.req.ResponseMsg1.ESBHeader.MessageContext.Actor.@Operation): null
},
ns0#Status: {
ns0#Code: "Success",
ns0#Message: ""
}
},
ns1#var1: flowVars.var1
}
}
flow2 的示例响应 Message2
{
ns1#ResponseMsg2: {
ns0#ESBHeader: {
ns0#InitialContext @(CreationTime: flowVars.req.ResponseMsg2.ESBHeader.InitialContext.@CreationTime, TrackingID: flowVars.req.ResponseMsg2.ESBHeader.InitialContext.@TrackingID): {
ns0#Actor @(Component: flowVars.req.ResponseMsg2.ESBHeader.InitialContext.Actor.@Component , Operation: flowVars.req.ResponseMsg2.ESBHeader.InitialContext.Actor.@Operation): null
},
ns0#MessageContext : {
ns0#Actor @(Component: flowVars.req.ResponseMsg2.ESBHeader.MessageContext.Actor.@Component , Operation: flowVars.req.ResponseMsg2.ESBHeader.MessageContext.Actor.@Operation): null
},
ns0#Status: {
ns0#Code: "Failure",
ns0#Message: ""
}
},
ns1#var1: flowVars.var1,
ns1#var2: flowVars.x.var2
}
}
非常感谢任何指针。
非常感谢。
解决方案
如果您使用 Mule 4,很容易创建和导入DataWeave 模块。
在 Mule 3 中有一个类似的方法,但它并不真正受支持,您可能会遇到一些问题。从您的脚本来看,它看起来像 Mule 3。这篇博文解释了该方法。
推荐阅读
- python - 产生 scrapy.http.Request 背后的逻辑是什么?
- r - R:删除列中重复元素的行簇
- python - 如何使用 Python 使用 StanfordNER 对命名实体进行集群
- polymer - Polymer 3 mixin 的正确导出语法是什么?
- sql-server - 添加列平均值和总计
- android - 蓝牙设备未断开连接
- ruby-on-rails - Ransack:显示按 Ransack 排序的 has_many 关系的属性
- c# - SignalR 从服务器连接到客户端
- ios - 如何从swift 3中包含双精度和整数的值集中获取最大值和最小值?
- sql - 如何编写查询以过滤掉 SQL 中的不同值