Axis2 / WSO2 ESB - 需要澄清

时间:2014-03-04 12:48:31

标签: wso2 axis2 wso2esb

我被指派使用wso2 esb(4.8.1)做简单的POC,我之前没有使用过wso2esb或其他类似的任何其他经验,而且我在学习过程中有这种经验。

我的目标是从远程第三方接收带有二进制数据的TCP数据包,转换为SOAP,做一些事情,转换回二进制并发送响应。潜伏在互联网上,我遇到了如下定义:Builder, MessageFormatter, TransportSender and TransportListener

afaik
Builder用于将传入数据转换为SOAP
MessageFormatter - 将传出数据从SOAP转换为预期类型
TransportSender - 通过电线发送转换为预期类型的​​SOAP TransportListener - 从线路接收请求,并将其转换为SOAP

1) TransportSenderListener自己做转换SOAP< - >二进制文件,或者他们以某种方式使用Builder / MessageFormatter ,这四者之间的流量是什么?

2)传输是否应与builder / formatter完全分离?

3并不重要} 在axis2.xml中注册BuilderFormatter,我需要指定contetType,这是否意味着它们仅适用于HTTP请求?即使它是真的,这对我不好,因为我期待原始的二进制数据,我如何为相同的内容类型注册两个单独的格式化程序/构建器?


更新1: 引自here

  

传输发送方根据其发送SOAP消息   组态。   传输接收器等待SOAP消息

总是如此吗?我的意思是,发件人和监听器只用于SOAP消息?

1 个答案:

答案 0 :(得分:2)

Axis2是一个Web服务引擎,它通过使用SOAP作为位于各种传输之间的规范形式,非常支持将各种传输插入到一起。

四种类型(发件人/听众,构建者/格式化程序)之间没有特别的流程。 TransportListeners将来自线路的传入消息序列化为SOAP格式(使用构建器)。 TransportSenders读取SOAP消息并将其解除为传出的有线格式,并将其放在线路上(使用格式化程序)。这里的关键是我们可以让消息从一个传输进入axis2并在完全不同的传输上发送出来。

将这一切绑定在一起的是在各个axis2阶段传递的消息上下文对象。

您应该查看Axis2 Architecture guide,还有一些要查看的内容是BuilderFormatter接口可能会明确其用途。