我在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?我猜我需要使用格式化或构建器调解器来实现这一点,我只是不确定如何。
答案 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上启用传输发送方和接收方)并查看您实际接收的内容吗?