我有以下有趣的情况。我有一个带有三个动词的路径:GET,DELETE,POST。它们对应于Camel上下文中的三个路由。我的观察是,如果三条路线都在同一个Camel上下文中,那么每条路线都运行良好。但是如果路线在不同的骆驼环境中,则只有其中一个有效。到目前为止,我注意到DELETE wworks和其他两个停止工作。我的示例上下文如下:
<camel:camelContext id="get-test" autoStartup="true">
<camel:route>
<camel:from uri="restlet:/path?restletMethod=DELETE"></camel:from>
<camel:transform>
<camel:constant>Hi Delete</camel:constant>
</camel:transform>
</camel:route>
<camel:route>
<camel:from uri="restlet:/path?restletMethod=GET"></camel:from>
<camel:transform>
<camel:constant>Hi Get</camel:constant>
</camel:transform>
</camel:route>
<camel:route>
<camel:from uri="restlet:/path?restletMethod=POST"></camel:from>
<camel:transform>
<camel:constant>Hi Post</camel:constant>
</camel:transform>
</camel:route>
</camel:camelContext>
所以,以上就是工作场景。无效的方案如下所示,有三种不同的背景:
<camel:camelContext id="delete-test" autoStartup="true">
<camel:route>
<camel:from uri="restlet:/path?restletMethod=DELETE"></camel:from>
<camel:transform>
<camel:constant>Hi Delete</camel:constant>
</camel:transform>
</camel:route>
</camel:camelContext>
<camel:camelContext id="get-test" autoStartup="true">
<camel:route>
<camel:from uri="restlet:/path?restletMethod=GET"></camel:from>
<camel:transform>
<camel:constant>Hi Get</camel:constant>
</camel:transform>
</camel:route>
</camel:camelContext>
<camel:camelContext id="post-test" autoStartup="true">
<camel:route>
<camel:from uri="restlet:/path?restletMethod=POST"></camel:from>
<camel:transform>
<camel:constant>Hi Post</camel:constant>
</camel:transform>
</camel:route>
</camel:camelContext>
也许我在骆驼规范中遗漏了一些禁止这种配置的东西?
答案 0 :(得分:0)
是的,不支持此功能。选择处理消息的路由的逻辑仅使用上下文路径作为逻辑的一部分。
不确定添加restletMethod以及选择逻辑的一部分是多么容易。随意记录JIRA票,并深入了解代码以进行贡献。我们喜欢贡献: http://camel.apache.org/contributing