0

プロキシのinSequenceで、フィルターメディエーターのxpathクエリを使用してフィルター処理しています。exists()しかし、またはのようなXPath関数を使用したいと思いますcount()。ただし、これは機能せず、常に例外が発生します。ここに私の例:

<filter xpath="count($body/myElement)>2">
 <drop/>
</filter>

そして私がいつも得る例外:

ERROR - FilterMediator Error evaluating XPath expression : n:exists($body/avintis:Exception)
        org.jaxen.UnresolvableException: No Such Function exists

これらの関数を機能させるにはどうすればよいですか?

4

2 に答える 2

2

以下に示すように、シナプスセグメントを変更するときに、フィルターメディエーターでxpath関数を使用できます。

<filter xpath="fn:exists($body/myElement)">
 <drop/>
</filter>

さらなるサンプルについては、[1]で利用可能な受信シーケンスを指定したサンプル156:サービス統合を参照できます。

 <filter xpath="fn:number(get-property('SIMPLE_SER_AMT')) > fn:number(get-property('SECURE_SER_AMT'))">

[1]。http://wso2.org/project/esb/java/4.0.3/docs/samples/proxy_samples.html

ありがとう、ダーシャナ

于 2013-02-21T11:27:52.287 に答える
0

fn:countの使用方法がわからない場合は、次のことを試してください。

<property name="itemCount" expression="fn:count(//*[local-name()='item'])"/>
<filter xpath="fn:number(get-property('itemCount')) > fn:number(0)">

これは私のために働きます。

于 2014-01-16T13:46:20.650 に答える