我有以下路线:
<camel:camelContext id="convert">
<camel:route>
<camel:from uri="restlet:/convert/{id}"/>
<camel:transform>
<camel:groovy>
request.headers.id
</camel:groovy>
</camel:transform>
</camel:route>
</camel:camelContext>
该路由应该简单地返回 URL 中传递的值作为 id 参数。 当我执行此操作时,第一个调用有效。第一次调用之后的任何操作都会返回第一次调用中传递的值。因此,如果第一个调用是 hostname/convert/999,则无论 URL 中传递什么 id,任何其他调用都将返回 999。看起来 groovy 正在做一些我不明白的有状态的事情。
有什么想法吗?
同样的事情似乎也发生在 JavaScript 上。
<camel:camelContext id="convert">
<camel:route>
<camel:from uri="restlet:/convert/{id}"/>
<camel:transform>
<camel:javaScript>request.headers.get('id')</camel:javaScript>
</camel:transform>
</camel:route>
</camel:camelContext>
最佳答案
好吧,这个问题是 Camel 中的回归错误。我已经记录了一张票,以便在新版本的 Camel 中修复此问题:https://issues.apache.org/jira/browse/CAMEL-7143
关于java - Camel + Groovy + Spring DSL 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21221085/