从WSO2 ESB中的WCF服务代理在OutSequence中将二进制转换为XML

时间:2013-04-18 16:59:24

标签: wcf wso2 wso2esb xelement

我在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>

soap body中的消息应该类似于

<?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?我猜我需要使用格式化或构建器调解器来实现这一点,我只是不确定如何。

1 个答案:

答案 0 :(得分:0)

ESB 4..6.0,默认情况下它使用passthru传输,它不会构建消息。 但是随着你的二进制输出,我可以确认ESB没有收到任何消息..(即:成功&#39; msg) 如果收到, 你可以看到,像这样的东西;

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

您可以切换回NIO传输(您需要在axi2.xml上启用传输发送方和接收方)并查看您实际接收的内容吗?