WSO2 EI带双命名空间XML转JSON时Payload Factory配置保存失败问题
配置错误点说明
- 输出格式配置错误:你当前要生成JSON格式的payload,但是<#ftl>指令中
output_format参数错误配置为了XML,该参数与media-type="json"冲突,会触发Integration Studio的配置校验失败。 - 命名空间引用语法错误:路径
$payload.n1:AAA.n2:CCC.n2:cf1.n2.nic的最后一级节点使用了.连接命名空间和节点名,正确写法应该用冒号,即n2:nic。 - 变量取值语法错误:Freemarker中需要使用
${}包裹变量才能完成动态取值,你直接将$payload.xxx写在字符串中不会被解析为变量,只会作为普通字符串处理,也会引发模板语法校验不通过。
修正后的配置
<payloadFactory media-type="json" template-type="freemarker"> <format><![CDATA[ <#ftl ns_prefixes={"n1": "http://www.example.com/XMLSchema", "n2": "http://www.example.com/sc1"} output_format="JSON"> { "aaaaaa": "TestValue1", "bbbb": "${payload.n1:AAA.n2:CCC.n2:cf1.n2:nic}", "ccc": "1299" }]]></format> <args/> </payloadFactory>
内容的提问来源于stack exchange,提问作者prime
相关产品推荐
相关产品推荐

