当前位置: 首页 > 知识库问答 >
问题:

Xpath在camel路由中不工作

谷梁涵忍
2023-03-14
 <Envelope><Header>
  </Header>
    <Body>
     <Choice>
        <Selector>1</selector>
    </Choice>
   </Body>
 </Envelope>

我的骆驼路线

from(direct:XX)
  .to(when(xpath("body()/Choice/Selector/.",String.class)=='1')
  .to("direct:X")
  .otherwise()
  .to("direct:Y")

共有1个答案

郭远
2023-03-14

>

  • 你的信封不能这样。一定是这样的:

     <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
       <soapenv:Header/>    
       <soapenv:Body>
        ...
    

    body()/choice/selector/.不是XPath。XPath中没有body()这样的东西。

    假设Exchange.Body中有一个SOAP正文内容,由某些JAX-WSendpoint处理,XPath将是

  •  类似资料:
    • 我在第1天17:00之前开始我的路由,作业将在第1天17:00触发 我在第1天17:00后开始路由,作业应在第2天17:00触发 和我选择了一份全州的工作有关吗?我选择了一个有状态的作业,以避免并发执行相同的作业。

    • 问题内容: 我有一项服务有两项操作。 我有骆驼大溃败: 在我的处理器bean中,当我指定时: 我得到了注册用户对象。一切正常。问题是我希望骆驼有条件地路由我的请求,例如: 如果服务操作是我要将消息路由到我的特定bean,并且如果服务操作是我要将消息路由到另一个bean。 我尝试使用骆驼xPath,但似乎无法正常工作。 我正在搜索如何设置骆驼以路由到不同的目标,但没有找到任何东西。也许有人知道问题可

    • 问题内容: 如何在Java运行时添加camel路线?我找到了Grails示例,但是已经用Java实现了。 我的applicationContext.xml已经有一些预定义的静态路由,我想在运行时为其添加一些动态路由。可能吗?因为包括动态路由的唯一方法是编写route.xml,然后将路由定义加载到上下文。它如何在现有静态路由上工作? 问题答案: 你可以在CamelContext上简单地调用一些不同的

    • 我试图用ApacheCamel和Spring Boot编写我的第一个项目。它应该调用Restendpoint并处理数据,但从未调用我的处理器。我做错了什么? 日志显示路由已启动并且它从“Direct://httpRoute”中消耗。但在最后没有日志表明调用了MyProcess。 pplication.java 我的路线。JAVA pom.xml 日志