0

我有以下路线:

    <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,则任何其他调用都将返回 999,无论 URL 中传递了什么 id。看起来 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>
4

1 回答 1

1

好的,所以 groovy 问题是 Camel 中的回归错误。我已经记录了一张票以在较新版本的 Camel 中修复此问题:https ://issues.apache.org/jira/browse/CAMEL-7143

于 2014-01-20T17:50:14.020 回答