0

apache camel でスティッキー ロード バランシングを実行するために、SOAP ヘッダーのいくつかのノードを整理したいと思います。そのために私は xpath を使用しており、私の xpath 式は次のようになります。

.loadBalance().sticky(xpath("substring(string(/*[local-name()='Envelope']/*[local-name()='Header']/*[local-name()='ReplyTo']/*[local-name()='ReferenceParameters']/*[local-name()='ServiceGroupId']/text()), 10)"))
.to(BE1,BE2); 

しかし、私がそれを実行すると、エラーが発生します:org.apache.camel.builder.xml.InvalidXPathExpression: Invalid xpath:

したがって、xpath 式に問題があるはずだと考えたので、同じことを行い、同じアクションを実行する小さな Java プログラムを作成しました。そしてJavaを使用して、xmlから目的の要素を取得しました。しかし、Apacheキャメルでこのエラーが発生しています。

私はここで何か悪いことをしていますか? どんな助けでも本当に感謝します。

4

1 に答える 1

0

うまくいきました!

コードは次のとおりです。

.loadBalance().sticky(env.xpath("substring(string(/soapenv:Envelope/soapenv:Header/wsa:ReplyTo/wsa:ReferenceParameters/axis2:Serv‌​iceGroupId/text()), 10)", String.class)) 
          .to(BE1,BE2); 

env は名前空間で、BE1 と BE2 はバックエンド サーバーです。

于 2012-09-15T18:12:44.287 に答える