【发布时间】:2015-01-26 20:02:52
【问题描述】:
我正在尝试通过Creating Transport 和
创建自定义传输
我成功创建了传输。但问题在于它使用的协议。因此,如果我创建了一个名为 customT 的自定义传输,那么我的自定义传输将侦听 customT://{hostname}/{port}/。但我想使用 http 或任何其他标准协议来使用这个自定义传输。基本上我正在尝试修改 Mule 提供的标准传输之一的功能。
所以任何人都可以帮助我并告诉我是否可以扩展 Mule 提供的现有 http(或任何其他)传输连接器或任何其他方式来覆盖我的自定义传输。
我找到了一种方法,方法是更改自定义连接器中NameSpaceHandler 类中的协议名称。
registerStandardTransportEndpoints("http", URIBuilder.PATH_ATTRIBUTES);
但问题在于,在此处提供 http 后,它不会转到我的自定义编写代码,而是转到 Mule 提供的连接器代码。
有人知道我应该如何改变这种行为吗?
谢谢。
【问题讨论】:
-
为什么不扩展现有的 HTTP 传输而不是创建一个新的并尝试将其命名空间强制到 Mule 中?
-
如何扩展现有的 HTTP 传输,因为据我阅读 Mule 的文档,为了扩展现有的传输,我需要运行命令从现有的 tansport 源代码创建传输目录,所以 mule 保持现有代码不变并添加新类。在创建传输时,我在回答“您想在这个项目中包含哪些 Mule 传输?”这个问题的答案中提供了“http”,但我仍然没有看到创建的传输项目有任何区别。
-
您可以扩展现有的类并将它们注册为服务覆盖。问题是:你到底想达到什么目标?
-
嗨,David,我正在尝试创建一个自定义传输连接器来处理像 tcp 这样的标准协议。此自定义的实际目的是创建自定义 MLLP 连接器以通过 SSL 工作并接受任何其他 HL7 消息,而不是仅仅期待 HL7 ACK 消息。如果您有任何其他方法可以实现这一目标,请分享。
-
不确定 MLLP 连接器是什么?!如果您打算通过 TCP/IP(甚至使用 SSL)创建自定义协议,Mule 支持此 OOTB。