我一直试图用“替换”来替换一个节点,但我不明白,希望有人能帮我。
我有一个ErrorHandler,在一个阶段和内部;分配>替换>回复。
In Assign;
Expression: $body
Variable: faultString
In Replace;
Xpath: .
In Variable: faultString
Expression: $body
Replace node contents
In Reply;
With failure所以我得到了一个回声,这个
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cli="http://www.xxxx.com.mx/xxxx/xxxxxxx">
<soapenv:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"></soapenv:Header>
<soapenv:Body>
<cli:getXXXXXXXXXXXXXXX>
<Json>{"principal":"principal","secundario":"secundario"}</Json>
</cli:getXXXXXXXXXXXXXXX>
</soapenv:Body>
</soapenv:Envelope>我想替换节点
<Json>{"principal":"principal","secundario":"secundario"}</Json>与;
<Json>{"otracosa":"otro","final":"final"}</Json>顺便说一下,当OSB没有到达端点并想要替换我说的内容时,我就会得到这种响应。
在此之前,非常感谢您。
发布于 2016-08-18 16:23:25
为了替换所需的配置,请使用此配置:
XPath: ./*:getXXXXXXXXXXXXXXX/Json
In Variable: $body
Expression: <Json>{"otracosa":"otro","final":"final"}</Json>
Replace entire node另一种选择:
XPath: ./*:getXXXXXXXXXXXXXXX/Json
In Variable: $body
Expression: xs:string('{"otracosa":"otro","final":"final"}')
Replace node contents一些解释:(用我的话)
变量:要替换的有效负载在哪里。根变量。 XPath: XPath,以获取要在变量中替换的节点。在示例“”中。是根bariable,"“可以是任何名称空间。(如果在IDE中定义名称空间,也可以使用"cli“代替"”) 表达式:要放置的数据。 替换整个节点/替换节点内容:如果要替换所有内容,包括使用XPath获取的标记,或者仅替换标记中的内容。我举了两个例子来做同样的事情。
关于Echo,可能您没有路由节点,或者您没有到达端点。响应管道在单独的线程中运行,如果没有路由节点,则创建回送以响应管道。
发布于 2015-05-07 07:07:50
作为理解的一部分,你的问题有两个部分:
第1点的解决方案:要替换节点内容:
如果要替换标签内的数据,请使用“替换节点内容”,并提供以下详细信息: XPath: /:getXXXXXXXXXXXXXXX/:Json变量: body表达式:{"otracosa":"otro","final":"final"}
第2点的解决方案:您得到了echo:
这是OSB的行为,如果没有调用端点,它就会发出回声。它将提供没有调用任何服务的信息。为了避免回显,请确保您的条件对执行回调配置是有效的。
如果您需要进一步的澄清,您可以在这里要求。
问候
阿苏托
https://stackoverflow.com/questions/29174655
复制相似问题