我跟随"消息路由器"模式在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>
它有效...但是我无法真正改变......所以,我怎样才能修改我的骆驼路线以使其有效?
谢谢!