Apache camel 如何使用Camel将Servlet配置为HazelCast路由

Apache camel 如何使用Camel将Servlet配置为HazelCast路由,apache-camel,hazelcast,Apache Camel,Hazelcast,我想建造一条类似这样的路线 <route> <from uri="servlet:///user?matchOnUriPrefix=true"/> <to uri="direct:put"/> </route> <route> <from uri="direct:put"/> <setHeader headerName="CamelHazelcastOperationType"> <constan

我想建造一条类似这样的路线

<route>
  <from uri="servlet:///user?matchOnUriPrefix=true"/>
  <to uri="direct:put"/>
</route>

<route>
<from uri="direct:put"/>
<setHeader headerName="CamelHazelcastOperationType">
<constant>put</constant>
</setHeader>
<to uri="hazelcast:map:foo"/>
</route>
ie与POST:/user/{cachename}/{key1}匹配的所有内容都应将key1作为键,并将有效负载放在key:key1下以映射:{cachename}

同样的事情

GET:/user/{cachename}/{key1}应将{key1}作为键,并从map:{cachename}检索key1下的有效负载

我们将非常感谢您的帮助


谢谢,

您应该可以从传入的servlet中获得许多Camel头,例如:

  • CamelHttpMethod=GET
  • CamelHttpPath=/user/{cachename}/{key1}
您可以使用代码或表达式语言从中提取信息,一个非常基本的示例是:

<setHeader headerName="cachename">
    <simple>${header.CamelHttpPath.split("/")[2]}</simple>
</setHeader>

<setHeader headerName="key1">
    <simple>${header.CamelHttpPath.split("/")[3]}</simple>
</setHeader>

${header.CamelHttpPath.split(“/”[2]}
${header.CamelHttpPath.split(“/”[3]}

Hi Bgossit这确实很有帮助,但我在camel中使用hazelcastcomponent时遇到了一些序列化异常。您是否可以了解一下以下帖子: