我搜索了很多,但无法得到正确的答案。我希望为 wso2 esb 编写一个新的适配器,它将能够识别新的消息传递协议(wso ESb 尚不支持)。我发现我必须为此编写一个传输。我只需要知道运输是做什么的?它应该具有使用消息构建器理解消息的能力吗?并且该组件是否进行所有消息转换等。请解释一下。在此先感谢。
2 回答
传输基本上是一种携带消息的方法。传输基本上是一种协议,例如http,https,vfs,它端到端地携带消息,
要检查 WSO2 方式请参阅文档“WSO2 碳传输目录”在 [1]。
编写新的传输 WSO2 ESB 基于 Apache Synapse,它使用 Axis2 Transports 来提供传输。您可以编写一个新的 Axis2 传输并将其插入 WSO2 ESB。你可以参考[2]和[3]。
[1]。http://wso2.org/project/esb/java/3.0.1/docs/transports/transports-catalog.html
[2] http://axis.apache.org/axis2/java/core/docs/axis2config.html#Receiver
[3] http://synapse.apache.org/transports.html
谢谢你,达沙那。
Axis2 Transport(我们在 WSO2 ESB 中使用)位于 SOAP 处理引擎的最外层。有关详细信息,请参阅 [1]。
对此进行更多解释。想象一下您需要将 SMS 协议转换为 Axis2 传输。这里需要在TransportListner 将传入的sms 消息转换为SOAP 消息,然后将其传递给Axis2 引擎。在传输侦听器中,您可以使用 MessageBuilder 将 SMS 消息转换为 SOAP 消息。
同样,当您向外部发送 SMS 消息时。您可以使用消息格式化程序将 SOAP 消息转换为 SMS 消息并将其传递给 TransportSender 到 SMS 端点。
是否使用消息构建器或传输取决于用例。假设您需要使用 JSON 消息。在那里,您可以使用任何现有的兼容传输来发送 JSON 消息,然后使用 JSON 消息构建器来执行此操作。(因为您可以通过 HTTP 等发送 JSON。)但是如果您需要使用 HTML5 Websockets 并通过它发送消息。您需要定义一个新的传输,因为没有其他方法可以监听和与 Web 套接字通信。
[1] http://axis.apache.org/axis2/java/core/docs/Axis2ArchitectureGuide.html