2017-01-19 8 views
0

Switch ... Caseメディエーターを持つ配列を定義し、WSO2のRegExに基づいて条件をチェックしました。下の定義で何が間違っていますか?それは最初のケース条件を実行することになっていた。しかし、ログは常にスイッチのデフォルトセクションを表示します。 以下のサンプルコードでは、PATH_PROPを出力すると、URL内の自分のリソースパスである "/rest/api/v1.0/fee"を返します。私は一致するようにしています、PATH_PROP変数に単語 'fee'がありますか?私のケースでは、それは.. ..ケース1に行くと思った。私はRegExを "fee"、 "。fee。"、 "\ bfee \ b"などにしようとした。私の定義で何が間違っていますか?
お手数をおかけしますようお願い申し上げます。WSO2シーケンスのスイッチケースで正規表現条件を定義する方法は?

<property expression="get-property('axis2','REST_URL_POSTFIX')" 
name="PATH_PROP" scope="default" type="STRING"/> 
<switch source="$ctx:PATH_PROP"> 
<case regex="fee"> 
    <log level="custom"> 
    <property name="CUSTOM_MESSAGE" value="CASE 1 *************"/> 
    </log> 
    <header name="To" scope="default" value="https://localhost:9448/am/sample/pizzashack/v1/api/menu"/> 
</case> 
<case regex=".*application/xml.*"> 
    <property name="messageType" scope="axis2" type="STRING" value="application/xml"/> 
</case> 
<default> 
    <property name="messageType" scope="axis2" type="STRING" value="text/xml"/> 
    <log level="custom"> 
    <property name="CUSTOM_MESSAGE" value="CASE_DEFAULT *************"/> 
    </log> 
    <header name="To" scope="default" value="http://was.apv.local:9080/rpe/rest/api/v1.0/fee?appID=1"/> 
</default> 

答えて

0

URL内の単語 "料金" と一致するように、ユーザの正規表現 ".*fee.*"。あなたは "/料金"、次に ".*/fee.*"

例えば一致させるために "料金" の$ CTXで一致へのWAN場合:PATH_PROPを

<switch source="$ctx:PATH_PROP"> 
<case regex="*.fee.*"> 
------------------ 
</case> 
<default> 
------ 
</default>