首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在WSO ESB中处理空的xml后端响应

在WSO ESB中处理空的xml后端响应
EN

Stack Overflow用户
提问于 2020-04-24 20:08:29
回答 1查看 68关注 0票数 1

在某些情况下,WSO2-ESB服务正在接收来自端点的“空”XML响应。

通常,响应是这样的。它包含几个result

代码语言:javascript
复制
<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
        <ns2:results xmlns:ns2="http://the-endpoint.com/">
            <result>some result</result>
            <result>some other result</result>
            <result>some very different result</result>
        </ns2:results>
    </S:Body>
</S:Envelope>

然后将其转换为result数组并由客户端使用。

代码语言:javascript
复制
{"results": ["some result", ...]}

但在极少数情况下,端点响应只是一个空的结果列表,它被JAX-WS明显地转换为一个空的<ns2:results/>标记。

代码语言:javascript
复制
<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
        <ns2:results xmlns:ns2="http://the-endpoint.com/"/>
    </S:Body>
</S:Envelope>

然后,WSO2-ESB将其转换为null对象,这将导致问题。

代码语言:javascript
复制
{"results": null}

现在,如何让WSO2-ESB Webservice以{"results": []}的形式返回空列表,以防出现空响应?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-25 15:15:08

您需要使用XSLT中介将XML处理指令添加到外部元素。

你可以参考这个关于添加处理指令的博客。https://medium.com/@CKoutsoumpos/wso2-esb-handle-empty-or-single-item-arrays-during-json-transformation-with-xslt-c1d5a778a548

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61408003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档