【问题标题】:FailedToCreateRouteException: Failed to create route.. at: >>> SetHeader[null, constant{}] <<< in route: because of headerName must be specifiedFailedToCreateRouteException: 无法创建路由.. at: >>> SetHeader[null, constant{}] <<< in route: 因为 headerName 必须指定
【发布时间】:2021-01-07 13:34:01
【问题描述】:

我正在创建这样的路线:

<routes xmlns="http://camel.apache.org/schema/spring">
   <route id="ESP_01.Handle_Movement">
      <from uri="mqtt:ESP_01.Handle_Movement?host=tcp://localhost:1883&amp;subscribeTopicName=ESP_01/Handle Movement&amp;version=3.1&amp;maxReadRate=0&amp;qualityOfService=AtLeastOnce" />
      <to uri="micrometer:timer:camel.proxy.mqtt.kafka.stream?action=start" />
      <to uri="log://camel.proxy?groupInterval=3&amp;level=INFO" />
      <to uri="kafka://ESP_01.Handle_Movement?brokers=localhost:9092" />
      <to uri="micrometer:timer:camel.proxy.mqtt.kafka.stream?action=stop" />
      <to uri="micrometer:timer:camel.proxy.cache?action=start" />
      <setHeader name="CamelCacheKey">
         <constant>Test ESP_01.Handle_Movement</constant>
      </setHeader>
      <setHeader name="CamelCacheOperation">
         <constant>Update</constant>
      </setHeader>
      <to uri="cache://Test ESP_01.Handle_Movement?maxElementsInMemory=10&amp;eternal=true" />
      <to uri="micrometer:timer:camel.proxy.cache?action=stop" />
   </route>
</routes>

我有

      <setHeader name="CamelCacheKey">
         <constant>Test ESP_01.Handle_Movement</constant>
      </setHeader>
      <setHeader name="CamelCacheOperation">
         <constant>Update</constant>
      </setHeader>

根据example,但是我从标题中收到错误消息,需要已经存在的名称参数丢失:

org.apache.camel.FailedToCreateRouteException: Failed to create route ESP_01.Handle_Movement at: >>> SetHeader[null, constant{Test ESP_01.Handle_Movement}] <<< in route: Route(ESP_01.Handle_Movement)[[From[mqtt:ESP_01.Handle_Movem... because of headerName must be specified

【问题讨论】:

    标签: java spring-boot apache-camel spring-dsl apache-camel-3


    【解决方案1】:

    这可能是由于2.24.3

    的bug

    在 Spring DSL 中,验证的参数是 name,而在 header 的类中,参数名称是 headerName,设置为 null。如果我尝试在 Spring DSL 中使用 headerName 参数,我会收到此错误:

    "org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 633; cvc-complex-type.3.2.2: Attribute 'headerName' is not allowed to appear in element 'setHeader'.",
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-30
      • 1970-01-01
      • 2017-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多