骆驼路线取决于标题。命名空间中断条件

时间:2014-11-14 16:21:43

标签: xml soap apache-camel

我跟随"消息路由器"模式在https://camel.apache.org/message-router.html

中解释

但是,我在使用命名空间的标头上遇到问题。

我收到的XML消息是这样的:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Header>
    <DF xmlns="http://mycompany/smth">myElement</DF>
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
    <ns2:processIncomingMessage xmlns:ns2="http://a.namespace.com/">
      <arg0>something</arg0>
    </ns2:processIncomingMessage>
 </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

这是我的路线:

from("switchyard://CamelInterfaceService") 
    .log("Header: ${headers}") 
    .log("Received message for 'CamelInterfaceService' : ${body}") 
    .choice() 
        .when(header("DF").isEqualTo("myElement")) 
        .to("switchyard://OtherService") 
        .log("SENT.........") 
        .end(); 

但是,OtherService未被调用。

如果我改变:

<DF xmlns="http://mycompany/smth">myElement</DF>

到:

<DF>myElement</DF>

它有效...但是我无法真正改变......所以,我怎样才能修改我的骆驼路线以使其有效?

谢谢!

0 个答案:

没有答案