在Mulesoft 4中,如何让http侦听器接受所有传入消息,而不考虑路径?
我的Mule应用程序有一个HTTP侦听器。我希望接收所有传入消息,然后根据路径路由消息,例如 我创建了具有以下属性的侦听器:在Mulesoft 4中,如何让http侦听器接受所有传入消息,而不考虑路径?,mule,mulesoft,Mule,Mulesoft,我的Mule应用程序有一个HTTP侦听器。我希望接收所有传入消息,然后根据路径路由消息,例如 我创建了具有以下属性的侦听器: 主持人: 端口:8080 路径:/ 然后我添加了一个选择路由器,我想询问传入路径并根据路径路由消息。。。例如 当我在没有路径的情况下运行应用程序时。。。但当我用其中一条路径运行它时,它会出错。。。“没有为/path3配置侦听器终结点” 有没有办法配置Mule HTTP侦听器以接受任何路径 谢谢如果不使用侦听器的绝对路径,就无法命中端点 在您的情况下,您已经使用了路径
主持人:
端口:8080
路径:/
然后我添加了一个选择路由器,我想询问传入路径并根据路径路由消息。。。例如
当我在没有路径的情况下运行应用程序时。。。但当我用其中一条路径运行它时,它会出错。。。“没有为/path3配置侦听器终结点” 有没有办法配置Mule HTTP侦听器以接受任何路径
谢谢如果不使用侦听器的绝对路径,就无法命中端点 在您的情况下,您已经使用了
路径:/
因此,这将不允许未声明的路径,如path:/path1
等
您可以尝试path:/*
以允许未声明的路径
但是,您可以有多个HTTP侦听器,每个侦听器都有自己的唯一路径,但使用相同的侦听器配置(主机、端口等)
因为您需要为不同的路径选择不同的选择路径,所以最好不要使用多条路径,因为您可能有多条路径
您不应该对路径和传入消息进行一对一(1->1)函数映射(如数学中的映射)
/path
基本上是API端点的资源
如果发现传入消息的数量为“n”,则必须创建“n”个路径(资源)和“n”个HTTP侦听器(使用相同的配置)。但是,这不是一个好办法
使用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
如果不使用侦听器的绝对路径,则无法命中端点 在您的情况下,您已经使用了
路径:/
因此,这将不允许未声明的路径,如path:/path1
等
您可以尝试path:/*
以允许未声明的路径
但是,您可以有多个HTTP侦听器,每个侦听器都有自己的唯一路径,但使用相同的侦听器配置(主机、端口等)
因为您需要为不同的路径选择不同的选择路径,所以最好不要使用多条路径,因为您可能有多条路径
您不应该对路径和传入消息进行一对一(1->1)函数映射(如数学中的映射)
/path
基本上是API端点的资源
如果发现传入消息的数量为“n”,则必须创建“n”个路径(资源)和“n”个HTTP侦听器(使用相同的配置)。但是,这不是一个好办法
使用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:NOT\u FOUND
错误,因为在使用APIKIT时,必须在RAML规范中定义所有允许的路径。您可以这样定义HTTP侦听器
<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/*"/>
路径的/*
值将允许任何请求通过
注意:如果您使用的是RAML和APIKIT,这将不起作用。您将得到
APIKIT:NOT_FOUND
错误,因为在使用APIKIT时,必须在RAML规范中定义所有允许的路径。告诉我。您的API是否使用RAML定义?另外,您希望处理的最大路径或传入消息数是多少?如果您有一个RAML定义和有限的路径(资源),您的mule生成的流将由APIkit路由器自动处理,路径为:/*,每个资源都有单独的流。下一步,你可以使用一些标志,根据自己的喜好将ref流到你的选择。告诉我。您的API是否使用RAML定义?另外,您希望处理的最大路径或传入消息数是多少?如果您有一个RAML定义和有限的路径(资源),您的mule生成的流将由APIkit路由器自动处理,路径为:/*,每个资源都有单独的流。接下来,您可以使用一些标志将ref流到您的选择。