如何解决在Mulesoft 4中,如何获取http侦听器以接受所有传入消息,而与路径无关?
我的Mule应用程序具有HTTP侦听器。我想接收所有传入消息,然后根据路径将消息路由,例如
我创建了具有以下属性的侦听器:
主持人:www.myhost.com
端口:8080
路径:/
然后,我添加了一个选择路由器,该路由器要询问传入路径并根据该路径路由消息,例如...
http://www.myhost.com:8080/path1
http://www.myhost.com:8080/path2
http://www.myhost.com:8080/path3
当我在没有路径的情况下运行应用程序时,它可以工作……但是当我以其中一个路径运行时,它会因错误而失败……“没有为/ path3配置监听器端点”
是否可以将Mule HTTP侦听器配置为接受任何路径?
谢谢
解决方法
如果不使用侦听器的绝对路径,则无法命中端点。
在您的情况下,您已使用过path:/
因此,这将不允许使用path:/path1
等未声明的路径。
您可以尝试
path:/*
允许使用未声明的路径。
但是,您可以有多个HTTP侦听器,每个侦听器都有自己的唯一路径,但是使用相同的侦听器配置(主机,端口等)。
由于您需要为不同的路径采用不同的选择路线,因此最好不要使用多条路径,因为您可能有多条路线。
您不应对路径与传入消息进行一对一(1-> 1)函数映射(就像在数学中一样)。
/path
基本上是API端点的资源。
如果发现有“ n”个传入消息,则必须创建“ n”个路径(资源)和“ n”个HTTP侦听器(使用相同的conf)。但是,这不是一个好方法。
代替使用 uriParams或queryParams 只是侦听一条路径,然后根据这些传入参数路由您的消息。
http://myhost.com:8080/basePath?route=1 // relevant body
http://myhost.com:8080/basePath?route=2 // relevant body
http://myhost.com:8080/basePath?route=3 // relevant body
,
您可以这样定义您的HTTP侦听器
<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/*"/>
路径的/*
值将允许所有请求通过。
注意::如果您使用的是RAML和APIKIT,则此方法将无效。由于使用APIKIT时必须在RAML规范中定义所有允许的路径,因此会出现APIKIT:NOT_FOUND
错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。