java - Camel + Groovy + Spring DSL 的奇怪行为

标签 java spring groovy apache-camel spring-dsl

我有以下路线:

    <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/

相关文章:

java - 为什么 JDBC 连接需要在 finally block 中关闭?

java - 如何在 Spring 中排除/禁止 validator 中的字段

java - 跳过特定表的创建 [Spring] [Hibernate]

string - Groovy 使用 unique 函数从列表中删除重复项

Groovy 与 Groovy++

java - 如何在 Android Studio 中创建 package-info.java

java - 如何在recyclerview中的复选框上进行单选?

java - jsp下拉列表不自动选择正确的值

grails - 如何检测 Url 映射中的片段标识符?

java - 与套接字交换对象