0

我在 REST api 和 WCF 服务之间使用 WSO2 ESB 中的代理服务。我正在调用的 WCF 服务接受并返回一个 XElement 对象。当 WCF 服务的响应进入代理的出序列时,结果是二进制的。

<?xml version='1.0' encoding='utf-8'?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
        <soapenv:Body>
            <axis2ns43:binary xmlns:axis2ns43="http://ws.apache.org/commons/ns/payload"></axis2ns43:binary>
        </soapenv:Body>
    </soapenv:Envelope>

肥皂正文中的消息应该类似于

<?xml version='1.0' encoding='utf-8'?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
        <soapenv:Body>
            <Location><Result>Success</Result></Location>
        </soapenv:Body>
    </soapenv:Envelope>

如何将二进制消息转换为它应该是的实际 XML?我猜我需要使用格式化或构建器调解器来完成此操作,我只是不确定如何。

4

1 回答 1

0

ESB 4..6.0,默认情况下它使用直通传输,它不会构建消息..但是使用您的二进制输出,我可以确认 ESB 没有收到任何消息..(即:“成功”消息)如果它收到了,你可以看到,类似的东西;

  <axis2ns43:binary xmlns:axis2ns43="http://ws.apache.org/commons/ns/payload">6Ly9zY2hlbWFzLnhtbHNvY</axis2ns43:binary>

您能否切换回 NIO 传输(您需要在 axi2.xml 中启用传输发送方和接收方),看看您实际接收的是什么?

于 2013-04-19T16:43:24.463 回答