Java 骆驼的奇怪行为+;Groovy+;Spring DSL

Java 骆驼的奇怪行为+;Groovy+;Spring DSL,java,spring,groovy,apache-camel,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.head

我有以下路线:

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

request.headers.id
此路由只需返回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>

request.headers.get('id')

好的,那么groovy的问题是Camel中的一个回归错误。我已经在更新版本的Camel中记录了一张修复此问题的票证:

您使用的Camel版本是什么?我使用的是2.12.1。现在我试着用2.12.2。同样的行为。你可以试试骆驼2.11.2或2.11.1等。我们可能在groovy的最新版本中有一个回归。看起来确实是回归。它适用于2.11.1。但是由于一些奇怪的原因,restlet似乎不能与2.11.1一起工作。也许是我使用它的方式。最后一条信息,如果有用的话。问题也出现在2.11.2中。