【问题标题】:WSO2 ESB TCP/UDP Axis2 server (case study)WSO2 ESB TCP/UDP Axis2 服务器(案例研究)
【发布时间】:2016-01-20 21:11:10
【问题描述】:
我一直在为这个特殊案例研究 WSO2 ESB:
我们有一些远程设备可以监控各种类型的数据(温度、风、警告、警报、恐慌等)。这些设备通过 UDP 和 TCP 主要以二进制格式(起始位、协议、值、时间)将数据包发送到服务器, 停止位)。
我知道 WSO2 ESB 可以通过 axis2 服务器支持 TCP 和 UDP 传输,但是我发现的所有示例都需要数据为 SOAP 格式(或类似 XML)。
有没有办法配置 Axis2 服务器来接收原始包?
提前致谢。
【问题讨论】:
标签:
tcp
udp
axis2
wso2esb
【解决方案1】:
AFAIK 这可以通过在axis2.xml 中配置消息构建器和格式化程序来实现。
Apache Axis2 是 Apache Synpase 的 SOAP 处理的基础,它帮助用户通过 Builders 和 Formatter 添加他们的自定义消息格式。
Builder 接受二进制数据流并创建 XML 消息,Formatter 接受 XML 消息并将其转换为字节。
将以下消息构建器和格式化程序添加到 conf/axis2.xml 中的相应部分(适用于 Apache Synapse 和 WSO2 Enterprise Service Bus)。
<messageBuilder contentType="text/html"
class="org.wso2.carbon.relay.BinaryRelayBuilder"/>
<messageFormatter contentType="text/html"
class="org.wso2.carbon.relay.ExpandingMessageFormatter"/>
上面的例子展示了如何为 text/html 内容类型启用二进制中继。
您需要为要在字节级别处理的每种内容类型重复上述一对配置。
有关设置二进制中继的更多信息,请参阅documentation。
希望这些信息对您有所帮助。